Tensorflow:将tf.parse_示例用于jpeg批处理
我只是被这个问题绊倒了: 第一个答案建议使用tf.parse_示例,而不是解析单个示例,因为这样似乎更快。但是提供的代码不完整,我不知道如何使用它。如果我批处理然后使用parse_示例,我将得到一批特性。这意味着我需要解压该批以便解码JPEG?答案中的代码是:Tensorflow:将tf.parse_示例用于jpeg批处理,tensorflow,Tensorflow,我只是被这个问题绊倒了: 第一个答案建议使用tf.parse_示例,而不是解析单个示例,因为这样似乎更快。但是提供的代码不完整,我不知道如何使用它。如果我批处理然后使用parse_示例,我将得到一批特性。这意味着我需要解压该批以便解码JPEG?答案中的代码是: reader = tf.TFRecordReader() _, serialized_example = reader.read(filename_queue) features = tf.parse_single_example(
reader = tf.TFRecordReader()
_, serialized_example = reader.read(filename_queue)
features = tf.parse_single_example(serialized_example, features={
image/center': tf.VarLenFeature(tf.string),
})
image = features['image/center']
image_decoded = tf.image.decode_jpeg(image.values[0], channels=3)
return image_decoded
并建议改为:
batch = tf.train.batch([serialized_example], num_examples, capacity=num_examples)
parsed_examples = tf.parse_example(batch, feature_spec)
但是我现在如何解码那些解析的例子呢?我也有同样的问题。我采用的方法是使用TensorFlow的
batch = tf.train.batch([serialized_example], num_examples, capacity=num_examples)
parsed_examples = tf.parse_example(batch,
features={
'image_jpg': tf.FixedLenFeature([], tf.string),
})
raw_bytes_batch = parsed_examples['image_jpg']
def decode(raw_bytes):
return tf.image.decode_jpeg(raw_bytes, channels=3)
image_decoded = tf.map_fn(decode, raw_bytes_batch, dtype=tf.uint8,
back_prop=False, parallel_iterations=10)
# image_decoded.set_shape([None, ..., ..., 3])
这应该在JPEG上并行运行
解码
功能。按原样执行时会发生什么?据我所知,它应该解码整批示例。啊,很抱歉,我从另一个问题复制了代码,没有意识到它有点不同。我用JPEG。。。我会编辑这个问题!我认为tf.image.decode\u jpeg不支持批处理