Reading a tfrecord: DecodeError: Error parsing message
Reading a tfrecord: DecodeError: Error parsing message
我正在使用 colab 运行 在 tensorflow 排名上 tutorial。它使用 wget 获取 tfrecord:
!wget -O "/tmp/train.tfrecords" "http://ciir.cs.umass.edu/downloads/Antique/tf-ranking/ELWC/train.tfrecords"
我正在使用这段代码来尝试查看 tfrecord 的结构:
for example in tf.compat.v1.python_io.tf_record_iterator("/tmp/train.tfrecords"):
print(tf.train.Example.FromString(example))
break
我得到:
DecodeError: Error parsing message
如何大致查看tfrecords的结构?
第二个问题:在哪里可以找到关于 类 的文档,比如 tf.train.Example
?我刚找到这个 empty page.
这个问题的洞察力是记录是使用另一个模式序列化的:ExampleListWithContext
模式,而不是基本的 tf.train.Example
模式。更新正确的反序列化解决问题。
filenames = ['/tmp/train.tfrecords']
raw_dataset = tf.data.TFRecordDataset(filenames)
for e in raw_dataset.take(1):
ELWC = input_pb2.ExampleListWithContext()
v = ELWC.FromString(e.numpy())
print(v.context)
for e in v.examples:
print(e)
输出:
features {
feature {
key: "query"
value {
bytes_list {
value: "why do ..."
}
}
}
feature {
key: "query_bert_encoder_outputs"
value {
float_list {
...
}}
我正在使用 colab 运行 在 tensorflow 排名上 tutorial。它使用 wget 获取 tfrecord:
!wget -O "/tmp/train.tfrecords" "http://ciir.cs.umass.edu/downloads/Antique/tf-ranking/ELWC/train.tfrecords"
我正在使用这段代码来尝试查看 tfrecord 的结构:
for example in tf.compat.v1.python_io.tf_record_iterator("/tmp/train.tfrecords"):
print(tf.train.Example.FromString(example))
break
我得到:
DecodeError: Error parsing message
如何大致查看tfrecords的结构?
第二个问题:在哪里可以找到关于 类 的文档,比如 tf.train.Example
?我刚找到这个 empty page.
这个问题的洞察力是记录是使用另一个模式序列化的:ExampleListWithContext
模式,而不是基本的 tf.train.Example
模式。更新正确的反序列化解决问题。
filenames = ['/tmp/train.tfrecords']
raw_dataset = tf.data.TFRecordDataset(filenames)
for e in raw_dataset.take(1):
ELWC = input_pb2.ExampleListWithContext()
v = ELWC.FromString(e.numpy())
print(v.context)
for e in v.examples:
print(e)
输出:
features {
feature {
key: "query"
value {
bytes_list {
value: "why do ..."
}
}
}
feature {
key: "query_bert_encoder_outputs"
value {
float_list {
...
}}