Ошибка при переходе от tf.TFRecordReader () к tf.data.TFRecordDataset - PullRequest
1 голос
/ 25 мая 2019

Я разрабатываю метод 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.

Я попробовал несколько советов, которые я искал в Интернетено пока не повезло.Наверное, я скучал по простому ...

...