我正在尝试在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
原型。