通过 TensorFlow Transform,我们可以使用 Apache Beam 预处理数据。设置此类管道时的要求之一是定义一个DatasetMetadata对象,该对象包含具有将数据从其磁盘或内存格式解析为张量所需的信息的模式。
在官方文档中,我们给出了一个表单示例:
raw_data_metadata = dataset_metadata.DatasetMetadata(
dataset_schema.from_feature_spec({
's': tf.FixedLenFeature([], tf.string),
'y': tf.FixedLenFeature([], tf.float32),
'x': tf.FixedLenFeature([], tf.float32),
}))
如果您的原始数据是以下形式的字典,这一切都很好:
{
's': 'example string',
'y': 32.0,
'x': 35.0
}
但是,在为SequenceExample定义模式时,我有些迷茫。更具体地说,考虑我的数据具有以下格式:
{
# context features
'length': 5,
# sequence features
'tokens': [
{
'raw': 'The',
'ner-tag': 'O'
},
{
'raw': 'European',
'ner-tag': 'B-org'
},
{
'raw': 'Union',
'ner-tag': 'I-org'
},
{
'raw': 'is',
'ner-tag': 'O'
},
{
'raw': 'nice',
'ner-tag': 'O'
}
...
]
}
上面我有一个带有 2 个序列的句子:
- ner-tag序列,将用作模型的标签
- 将用作模型特征的原始序列
如何为此类示例创建 TFT 数据模式?
这个文档有点缺席。非常感谢任何帮助!