Как записать набор данных сериализованных примеров непосредственно в файл tfrecords? - PullRequest
1 голос
/ 22 октября 2019

У меня есть tf.data.Dataset, который содержит сериализованные примеры tfrecord / protobuf:

>>> example = ds.make_one_shot_iterator().get_next()
>>> example
<tf.Tensor: id=42, shape=(), dtype=string, numpy=b'\n\xdd:\n\r\n\x01y\x12\x08\x12\x06\n\x...'>

Так что каждый пример в наборе данных ds представляет собой просто строку байтов.

Что яЯ хотел бы записать эти байтовые строки на диск (файл tfrecords). Я знаю, как это сделать - пройти через землю питона. Например, при использовании сеанса tf1 это выглядело бы так:

example = ds.make_one_shot_iterator().get_next()

with tf.io.TFRecordWriter("/path/to/output/data.tfrecords") as w:
    with tf.Session() as sess:
        w.write(sess.run(example))

Это не очень эффективно для меня. Итак, мой вопрос:

  • Есть ли способ, которым я могу записать это в файл без необходимости проходить через слой Python?
...