我正在尝试在Tensorflow中读取二进制文件。
我想问,应该使用哪种方法,以及如何读取二进制文件。
在tensorflow中,他们建议在tf.data中使用数据集。
但是我找不到使用数据集的简单示例,尤其是FixedLengthRecordDataset。我认为我应该使用这种方法,但是我不知道如何使用。

[hg file] := [file header] [image1] [image2] [image3] ...

[file header] := "hg  " (8 bytes)

[imageN] := [image header] [image data]

[image header] := [code(2 bytes)] [width (1 byte)] [height(1 byte)] [reserved(2 bytes)]

[image data] := 256 gray data (width * height bytes, row-major format)


这是我的二进制文件的格式。

请给我一些有关这项工作的建议。

编辑:所有图像都有不同的大小。所以也许我不能使用FixedLengthRecordDatasest。我想我必须将所有图像转换为相同大小的数据集

最佳答案

我相信您需要编写自己的数据集阅读器op来解析该格式。 FixedLengthRecordDataset's implementation是开始构造代码的好地方(但请注意,您描述的记录不是固定长度的)。

我建议改为在tf.train.Example协议缓冲区中然后在using a TFRecordDataset for input中重新编码图像。这样,解析已经为您完成;您应该可以使用任何语言创建tf.train.Example原型。

09-06 11:28