У меня есть 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?