我有一个.tfrecord,但我不知道它是如何构造的。如何检查模式以了解.tfrecord文件中包含的内容?
所有的堆栈溢出答案或文档似乎都假定我知道文件的结构。
reader = tf.TFRecordReader()
file = tf.train.string_input_producer("record.tfrecord")
_, serialized_record = reader.read(file)
...HOW TO INSPECT serialized_record...发布于 2017-02-22 21:20:02
找到了!
import tensorflow as tf
for example in tf.python_io.tf_record_iterator("data/foobar.tfrecord"):
print(tf.train.Example.FromString(example))您还可以添加:
from google.protobuf.json_format import MessageToJson
...
jsonMessage = MessageToJson(tf.train.Example.FromString(example))发布于 2020-03-29 15:06:59
上面的解决方案对我不起作用,所以for TF-2.0使用如下:
import tensorflow as tf
raw_dataset = tf.data.TFRecordDataset("path-to-file")
for raw_record in raw_dataset.take(1):
example = tf.train.Example()
example.ParseFromString(raw_record.numpy())
print(example)发布于 2020-07-13 07:47:41
改进已接受的解决办法:
import tensorflow as tf
import json
from google.protobuf.json_format import MessageToJson
dataset = tf.data.TFRecordDataset("mydata.tfrecord")
for d in dataset:
ex = tf.train.Example()
ex.ParseFromString(d.numpy())
m = json.loads(MessageToJson(ex))
print(m['features']['feature'].keys())在我的例子中,我在TF2上运行,一个示例太大,无法在屏幕上使用,所以我需要使用字典来检查键(接受的解决方案返回一个完整的字符串)。
https://stackoverflow.com/questions/42394585
复制相似问题