Я пытаюсь следовать этому руководству , чтобы сериализовать мои входные данные в формат TFRecord, но я продолжаю нажимать эту ошибку при попытке прочитать:
InvalidArgumentError:Ключ: мой_ключНе могу разобрать сериализованный пример.
Я не уверен, где я иду не так.Вот минимальное воспроизведение проблемы, которую я не могу решить.
Сериализация некоторых образцов данных:
with tf.python_io.TFRecordWriter('train.tfrecords') as writer:
for idx in range(10):
example = tf.train.Example(
features=tf.train.Features(
feature={
'label': tf.train.Feature(int64_list=tf.train.Int64List(value=[1,2,3])),
'test': tf.train.Feature(float_list=tf.train.FloatList(value=[0.1,0.2,0.3]))
}
)
)
writer.write(example.SerializeToString())
writer.close()
Функция синтаксического анализа и десериализация:
def parse(tfrecord):
features = {
'label': tf.FixedLenFeature([], tf.int64, default_value=0),
'test': tf.FixedLenFeature([], tf.float32, default_value=0.0),
}
return tf.parse_single_example(tfrecord, features)
dataset = tf.data.TFRecordDataset('train.tfrecords').map(parse)
getnext = dataset.make_one_shot_iterator().get_next()
При попытке запустить это:
with tf.Session() as sess:
v = sess.run(getnext)
print (v)
Я вызываю вышеуказанное сообщение об ошибке.
Можно ли обойти эту ошибку и десериализовать мои данные?