Tensorflow 1.x和Tensorflow 2.x读取tfrecord方法略有不同,下面分别记录两段代码:
Tensorflow 1.x:
for example in tf.python_io.tf_record_iterator(path):
# print(tf.train.Example.FromString(example))
jsonMessage = MessageToJson(tf.train.Example.FromString(example))
Tensorflow 2.x:
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())

这篇博客介绍了Tensorflow 1.x和2.x中读取tfrecord文件的不同方法。在Tensorflow 1.x中,使用`tf.python_io.tf_record_iterator`并结合`tf.train.Example.FromString`解析数据;而在Tensorflow 2.x中,通过`tf.data.TFRecordDataset`读取数据,并利用`Example`类的`ParseFromString`方法和`MessageToJson`将protobuf消息转换为JSON。
1万+

被折叠的 条评论
为什么被折叠?



