Класс TFRecordWriter
Класс TFRecordWriter применяется для записи данных
в файлы формата TFRecord. Первым параметром
класс принимает путь к файлу, в который будут
записываться данные. Формат TFRecord представляет
собой простой бинарный формат для хранения
последовательности сериализованных примеров,
которые удобно читать потоком во время обучения
модели. Данные записываются с помощью метода
write, а по завершении работы файл нужно
закрыть методом close или использовать
класс как контекстный менеджер.
Синтаксис
tf.io.TFRecordWriter(path, options=None)
Пример
Давайте создадим файл TFRecord и запишем в него одну строку, преобразованную в байты:
import tensorflow as tf
writer = tf.io.TFRecordWriter('data.tfrecord')
writer.write(b'abcde')
writer.close()
print('record written')
Результат выполнения кода:
"record written"
Пример
Давайте запишем несколько примеров, сериализовав
тензоры в строку с помощью tf.train.Example:
import tensorflow as tf
with tf.io.TFRecordWriter('data.tfrecord') as writer:
for value in [1, 2, 3]:
feature = {
'value': tf.train.Feature(
int64_list=tf.train.Int64List(value=[value])
)
}
example = tf.train.Example(
features=tf.train.Features(feature=feature)
)
writer.write(example.SerializeToString())
print('records written')
Результат выполнения кода:
"records written"
Пример
Давайте проверим, что записанные данные можно
прочитать обратно с помощью tf.data.TFRecordDataset:
import tensorflow as tf
with tf.io.TFRecordWriter('data.tfrecord') as writer:
writer.write(b'abcde')
dataset = tf.data.TFRecordDataset('data.tfrecord')
for record in dataset:
print(record.numpy())
Результат выполнения кода:
b'abcde'
Смотрите также
-
класс
TFRecordWriter,
который записывает данные в формат TFRecord -
метод
write,
который записывает очередную запись в файл -
метод
close,
который закрывает файл после записи -
метод
flush,
который сбрасывает буфер на диск