tf.data.experimental.TFRecordWriter
| Просмотреть исходный код на GitHub |
Записывает набор данных в файл 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 запись выполняется самим методом, и возвращаемого значения нет. |
Raises 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/versions/r2.9/api_docs/python/tf/data/experimental/TFRecordWriter