Я разрабатываю метод 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.
Я попробовал несколько советов, которые я искал в Интернетено пока не повезло.Наверное, я скучал по простому ...