从tf.TFRecordReader()转换为tf.data.TFRecordDataset时出错

时间:2019-05-25 14:14:47

标签: python tensorflow tfrecord

我正在研究有关tfRecord的方法,以加快培训速度。我要阅读的.tfrecord代码如下

reader = tf.TFRecordReader()
filenameQueue = tf.train.string_input_producer(['train.tfrecords'])

_, serializedExample = reader.read(filenameQueue)

features = tf.io.parse_single_example(
                                   serializedExample,
                                   features = {
                                   'image_raw': tf.io.FixedLenFeature([], tf.string),
                                   'boxes': tf.io.FixedLenFeature([],tf.string),
                                   })

image = tf.decode_raw(features['image_raw'],tf.uint8)
boxes = tf.decode_raw(features['boxes'],tf.float32)

sess = tf.compat.v1.Session()
coord = tf.train.Coordinator()
threads = tf.train.start_queue_runners(sess = sess, coord=coord)

for i in range(3):
    _, Box = sess.run([image,boxes])
print(Box)

这很好用,除了我一直在获取需要使用tf.data.Dataset代替reader的信息。我正在尝试通过将上述代码的前三行替换为

serializedExample = tf.data.TFRecordDataset(tf.gfile.Glob(['train.tfrecord']))

然后,我开始出现类似错误

TypeError: Failed to convert object of type <class 'tensorflow.python.data.ops.readers.TFRecordDatasetV1'> to Tensor. Contents: <TFRecordDatasetV1 shapes: (), types: tf.string>. Consider casting elements to a supported type.

我尝试了一些在线搜索的技巧,但到目前为止还不走运。可能我没想过……

0 个答案:

没有答案