我有一个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文件)。我知道做到这一点的方法是通过python land。例如,使用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))
这对我来说不是很有效。所以我的问题是: