Класс TFRecordDataset
Класс TFRecordDataset создает датасет,
который читает записи из одного или нескольких
файлов формата TFRecord. Первым параметром
класс принимает имя файла или список файлов.
Формат TFRecord - это простой бинарный формат
для хранения последовательности записей, который
широко используется в TensorFlow для эффективной
загрузки больших объемов данных.
Датасет возвращает тензоры строк с типом
tf.string, каждый из которых содержит
сериализованную запись. Для извлечения данных
из этих записей обычно используется функция
tf.io.parse_single_example вместе с
описанием признаков.
Синтаксис
tf.data.TFRecordDataset(
filenames,
compression_type=None,
buffer_size=None,
num_parallel_reads=None
)
Параметры
Класс TFRecordDataset принимает
следующие параметры:
-
filenames- строка с именем файла, список строк или тензор строк с именами TFRecord файлов -
compression_type- тип сжатия данных, может бытьNone,'GZIP'или'ZLIB' -
buffer_size- размер буфера в байтах для чтения -
num_parallel_reads- число файлов, читаемых параллельно
Пример
Давайте создадим TFRecord файл и прочитаем
его с помощью класса TFRecordDataset:
import tensorflow as tf
# Create sample TFRecord file
with tf.io.TFRecordWriter('sample.tfrecord') as writer:
writer.write(tf.constant('abcde').numpy())
writer.write(tf.constant('model.keras').numpy())
# Read records from file
dataset = tf.data.TFRecordDataset('sample.tfrecord')
for record in dataset:
print(record)
Результат выполнения кода:
tf.Tensor(b'abcde', shape=(), dtype=string)
tf.Tensor(b'model.keras', shape=(), dtype=string)
Пример
Давайте создадим TFRecord файл с
сериализованными примерами и распарсим
их с помощью parse_single_example:
Результат выполнения кода:
Пример
Давайте прочитаем несколько TFRecord файлов
параллельно с помощью параметра
num_parallel_reads:
Результат выполнения кода:
Пример
Давайте прочитаем сжатый GZIP TFRecord файл,
указав параметр compression_type:
Результат выполнения кода:
Смотрите также
-
класс
TextLineDataset,
который читает строки из текстовых файлов -
класс
FixedLengthRecordDataset,
который читает записи фиксированной длины -
класс
Iterator,
который предоставляет доступ к элементам датасета -
функцию
timeseries_dataset_from_array,
которая создает датасет временных рядов из массива