Вы можете использовать наборы данных TensorFlow (tfds): эта библиотека представляет собой не только набор готовых к использованию tf.data.Dataset
объектов, но это также набор инструментов для преобразования необработанных данных в TFRecords.
Следуя официальному руководству, добавить новый набор данных просто. Короче говоря, вам нужно только реализовать методы _info
и _generate_examples
.
В частности, _generate_examples
— это метод, используемый tfds для создания строк внутри TFRecords. Каждый элемент, который выдает _generate_examples
, является словарем; каждый словарь представляет собой строку в файле TFRecord.
Например (из официальной документации) generate_examples
ниже используется tfds для сохранения TFRecords, каждый с записями "image_description", "image", "label".
def _generate_examples(self, images_dir_path, labels):
# Read the input data out of the source files
for image_file in tf.io.gfile.listdir(images_dir_path):
...
with tf.io.gfile.GFile(labels) as f:
...
# And yield examples as feature dictionaries
for image_id, description, label in data:
yield image_id, {
"image_description": description,
"image": "%s/%s.jpeg" % (images_dir_path, image_id),
"label": label,
}
В вашем случае вы можете просто использовать объект tf.data.Dataset
, который у вас уже есть, и пройтись по нему (в методе generate_examples) и получить строки TFRecord.
Таким образом, tfds позаботится о сериализации, и вы найдете в папке ~/tensorflow_datasets
файл TFRecord, созданный для вашего набора данных.
person
nessuno
schedule
12.08.2019