tf.data.experimental.TFRecordWriter
Записывает набор данных в файл TFRecord. (устарело)
tf.data.experimental.TFRecordWriter(
filename, compression_type=None
)
Элементы набора данных должны быть скалярными строками. Чтобы сериализовать элементы набора данных в виде строк, можно использовать функцию tf.io.serialize_tensor.
dataset = tf.data.Dataset.range(3)
dataset = dataset.map(tf.io.serialize_tensor)
writer = tf.data.experimental.TFRecordWriter("/path/to/file.tfrecord")
writer.write(dataset)
Чтобы прочитать элементы обратно, используйте TFRecordDataset.
dataset = tf.data.TFRecordDataset("/path/to/file.tfrecord")
dataset = dataset.map(lambda x: tf.io.parse_tensor(x, tf.int64))
Чтобы разделить dataset на несколько файлов TFRecord:
dataset = ... # dataset to be written def reduce_func(key, dataset): filename = tf.strings.join([PATH_PREFIX, tf.strings.as_string(key)]) writer = tf.data.experimental.TFRecordWriter(filename) writer.write(dataset.map(lambda _, x: x)) return tf.data.Dataset.from_tensors(filename) dataset = dataset.enumerate() dataset = dataset.apply(tf.data.experimental.group_by_window( lambda i, _: i % NUM_SHARDS, reduce_func, tf.int64.max )) # Iterate through the dataset to trigger data writing. for _ in dataset: pass
| Аргументы | |
|---|---|
filename | строковый путь, указывающий, куда записывать данные TFRecord. |
compression_type | (Необязательно.) Строка, указывающая тип сжатия, используемый при записи файла. Доступные типы сжатия см. в tf.io.TFRecordCompressionType. По умолчанию используется None. |
Методы
write
write(
dataset
)
Записывает набор данных в файл TFRecord.
Операция, записывающая содержимое указанного набора данных в файл, заданный в конструкторе.
Если файл существует, он будет перезаписан.
| Аргументы | |
|---|---|
dataset | tf.data.Dataset, элементы которого нужно записать в файл |
| Возвращает | |
|---|---|
| В графовом режиме возвращается операция, выполнение которой выполняет запись. В eager-режиме запись выполняется самим методом, и он не возвращает значение. |
Вызывает TypeError: если dataset не является tf.data.Dataset. TypeError: если элементы, создаваемые набором данных, не являются скалярными строками.
© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/api_docs/python/tf/data/experimental/TFRecordWriter