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 ))
| Аргументы | |
|---|---|
filename | строковый путь, указывающий место записи данных TFRecord. |
compression_type | (необязательно.) строка, указывающая тип сжатия при записи файла. См. tf.io.TFRecordCompressionType для доступных типов сжатия. По умолчанию None. |
Методы
write
write(
dataset
)
Записывает набор данных в файл TFRecord.
Операция, записывающая содержимое указанного набора данных в файл, указанный в конструкторе.
Если файл существует, он будет перезаписан.
| Аргументы | |
|---|---|
dataset | tf.data.Dataset, элементы которого должны быть записаны в файл |
| Возвращает | |
|---|---|
| В режиме графа это возвращает операцию, которая при выполнении выполняет запись. В режиме eager запись выполняется самим методом, и значения не возвращаются. |
Возникает TypeError: если dataset не является tf.data.Dataset. TypeError: если элементы, генерируемые набором данных, не являются скалярными строками.
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.3/api_docs/python/tf/data/experimental/TFRecordWriter