我存储了数量不等的图像作为字节列表:
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
?
谢谢