Запись примеров в TensorFlow
Набор можно сохранить на диск
и загрузить снова без повторной
сборки из тензоров. Для записи
служит класс TFRecordWriter,
для чтения - класс
TFRecordDataset.
Запишем три целых числа в файл
points.tfrecord:
import tensorflow as tf
path = "points.tfrecord"
with tf.io.TFRecordWriter(path) as writer:
for val in [5, 6, 7]:
record = tf.train.Example(
features=tf.train.Features(
feature={
"value": tf.train.Feature(
int64_list=tf.train.Int64List(
value=[val]
)
)
}
)
)
writer.write(record.SerializeToString())
Прочитаем файл как набор и разберём каждую запись в одно число:
import tensorflow as tf
path = "points.tfrecord"
def read_record(record):
parsed = tf.io.parse_single_example(
record,
{"value": tf.io.FixedLenFeature([], tf.int64)},
)
return parsed["value"]
ds = tf.data.TFRecordDataset(path)
ds = ds.map(read_record)
for item in ds:
print(item.numpy())
# выведет 5, 6 и 7 по строкам
Запишите в файл data.tfrecord
три числа 1, 2
и 3 под ключом
num, прочитайте
файл как набор и выведите
все значения.
Сохраните в vals.tfrecord
два примера с полем
x: 10 и 20.
Загрузите набор и выведите
оба числа по порядку.
Запишите в batch.tfrecord
четыре целых под одним
именем поля, прочитайте
поток и соберите элементы
в список целых.