如何使用TensorFlow解码存储在tfrecords中的字节列表?

时间:2018-11-05 02:55:03

标签: python tensorflow image-processing deep-learning tfrecord

我存储了数量不等的图像作为字节列表:

img.append(trajectory_step['img'].tostring())
feature['img'] = _bytes_feature(img)
...
example = tf.train.Example(features=tf.train.Features(feature=feature))
writer.write(example.SerializeToString())

我还确保保存图像数量以供以后解码(experiment_length)。

现在我无法通过以下方式解码图像:

features = {
'img': tf.VarLenFeature(tf.string),
...
}
parsed_features = tf.parse_single_example(example_proto, features)
img = tf.decode_raw(parsed_features['img'], out_type=tf.uint8)
img = tf.reshape(img, tf.stack([experiment_length, 120, 160, 3]))

哪个会产生以下错误:

  

TypeError:预期的字符串传递给op的参数“ bytes”   “ DecodeRaw”,    类型为“ SparseTensor”。

如果我选择使用tf.FixedLenFeature,则会出现以下错误:

  

tensorflow.python.framework.errors_impl.InvalidArgumentError:名称:   ,键:img,索引:0。字节数!=期望值。   值大小:5,但输出形状:[]

如何正确解码字节列表?并且:tf.VarLenFeature在这种情况下是否正确,还是我应该使用tf.FixedLenFeature

谢谢

0 个答案:

没有答案