对于 Uni 的一个项目,我正在使用 TensorFlow 中的神经网络实施问答(bAbI 数据集任务 5,请参阅https://research.fb.com/downloads/babi/)系统,以及我想为我的输入管道使用 TFRecords。
我的想法是,TFRecords 术语中的一个示例应该包括问题的上下文、问题本身、答案和支持句号(int 指向上下文中能够回答问题的最重要的句子) . 这是我定义函数的方式:
def make_example(context, question, answer, support):
ex = tf.train.SequenceExample()
fl_context = ex.feature_lists.feature_list["context"]
fl_question = ex.feature_lists.feature_list["question"]
fl_answer = ex.feature_lists.feature_list["answer"]
ex.context.feature["support"].int64_list.value.append(support)
for token in context:
fl_context.feature.add().int64_list.value.append(token)
for qWord in question:
fl_question.feature.add().int64_list.value.append(qWord)
for ansWord in answer:
fl_answer.feature.add().int64_list.value.append(ansWord)
fl_support.feature.add().int64_list.value.append(support)
return ex
但是,在传递上下文、问题和答案之前,我想嵌入单词并用它们的 GloVe 向量表示它们,即用 (m,d) 矩阵表示,其中 m 是句子中的标记数,d 是每个词向量的维数。make_example
我得到的功能似乎不能很好地处理这件事:
theTypeError: (array([[ -9.58490000e-01, 1.73210000e-01,
2.51650000e-01,
-5.61450000e-01, -1.21440000e-01, 1.54350000e+00,
-1.28930000e+00, -9.77790000e-01, -1.35480000e-01,
-6.06930000e-01, -1.37810000e+00, 6.33470000e-01,
1.33160000e-01, 2.46320000e-01, 6.60260000e-01,
-4.46130000e-02, 4.09510000e-01, -7.61670000e-01,
4.67530000e-01, -6.67810000e-01, 2.99850000e-01,
-2.74810000e-01, -5.47990000e-01, -8.56820000e-01,
5.30880000e-02, -2.01700000e+00, 7.48530000e-01,
-1.27830000e-01, 1.32050000e-01, -2.19450000e-01,
2.29830000e+00, -3.17680000e-01, -8.64940000e-01,
-1.08630000e-01, -8.13770000e-02, -7.03420000e-01,
4.60000000e-01, -3.34730000e-01, 4.37030000e-02,
-7.55080000e-01, -6.89710000e-01, 7.14380000e-01,
-8.35950000e-02, 1.58620000e-02, -5.23850000e-01,
1.72520000e-01, -4.98740000e-01, 2.30810000e-01,
-3.64690000e-01, 1.5 has type <class 'tuple'>, but expected one of:
(<class 'int'>,)
指向 fl_context.feature.add().int64_list.value.append(token)
上述...有人可以指出我在哪里误解了 TFRecords 的概念,并给我一个如何解决问题的建议?
我搜索了很多学习资料,但通常 TFRecords 上的示例都是带有图像数据的。到目前为止,我的参考资料是https://medium.com/@TalPerry/getting-text-into-tensorflow-with-the-dataset-api-ffb832c8bec6和http://web.stanford.edu/class/cs20si/lectures/ notes_09.pdf。
提前非常感谢!