如何将示例中的数据序列化为tensorflow排名的示例格式?

如何将示例中的数据序列化为tensorflow排名的示例格式?,tensorflow,protocol-buffers,Tensorflow,Protocol Buffers,我正在建立一个排名模型。我正在尝试以TFRecord格式序列化数据集,并在训练时将其读回 本教程没有说明如何执行此操作。有一些关于示例数据格式示例的文档,但我很难理解:我不确定serialized_上下文或serialized_示例字段是什么,或者它们如何适合示例,我不确定代码块中的Serialize()函数是什么 具体来说,如何以示例格式写入和读取示例中的数据?上下文是从feature name到tf.train.feature的映射。示例列表是从功能名称到tf.train.feature的映

我正在建立一个排名模型。我正在尝试以TFRecord格式序列化数据集,并在训练时将其读回

本教程没有说明如何执行此操作。有一些关于示例数据格式示例的文档,但我很难理解:我不确定
serialized_上下文
serialized_示例
字段是什么,或者它们如何适合示例,我不确定代码块中的
Serialize()
函数是什么


具体来说,如何以示例格式写入和读取示例中的数据?

上下文是从feature name到
tf.train.feature的映射。示例列表是从功能名称到
tf.train.feature
的映射列表。一旦有了这些,下面的代码将创建一个“示例中的示例”:

要回读示例,您可以打电话

tfr.data.parse_from_example_in_example(example_pb,
    context_feature_spec = context_feature_spec,
    example_feature_spec = example_feature_spec)

其中
context\u feature\u spec
example\u feature\u spec
是从feature name到
tf.io.FixedLenFeature
tf.io.VarLenFeature

的映射,首先,我建议您阅读本文,以确保您知道如何创建
tf.example
以及
tf.SequenceExample
(顺便问一下,这是TF排名支持的另一种数据格式):

在本文的第二部分中,您将看到
tf.SequenceExample
有两个组件:1)上下文和2)序列(或示例)。这与示例中的示例
试图实现的想法相同。基本上,上下文是一组独立于您想要排序的项目的特征(在搜索的情况下是搜索查询,在推荐系统的情况下是用户特征),序列部分是一个项目列表(也称为示例)。这可以是文档列表(在搜索中)或电影列表(在推荐中)

一旦您熟悉了
tf.Example
,示例中的
示例将更容易理解。看看这段代码,了解如何创建
EIE
实例:

1) 将上下文功能捆绑在
tf.Example
对象中并序列化它

2) 在另一个
tf.example
对象中绑定序列(示例)功能(每个功能都可能包含一个值列表)

3) 将它们包装在父级
tf中。示例


4) (如果您正在写入tfrecords)序列化父对象
tf.Example
对象并写入tfrecord文件。

我无法实现此功能。你能用一些随机数据提供一个完整的例子吗?(例如,如何生成tf.train.Feature,如何初始化tf.io.fixedlen功能)
tfr.data.parse_from_example_in_example(example_pb,
    context_feature_spec = context_feature_spec,
    example_feature_spec = example_feature_spec)