我正在研究有关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.
我尝试了一些在线搜索的技巧,但到目前为止还不走运。可能我没想过……