繁体   English   中英

RNN语言模型(TensorFlow)的输入是什么?

[英]What is the input to an RNN language model (TensorFlow)?

我想在TensorFlow中建立一个递归神经网络(RNN),以预测单词序列中的下一个单词。 我看过一些教程,例如TensorFlow之一 我知道训练文本中的每个单词都映射到一个整数索引。 但是,关于输入,还有一些我没有得到的东西:

  1. 批量训练网络,例如同时训练128个示例。 假设我们的词汇中有10.000个单词。 输入到网络的矩阵是大小为(128,sequence_length)的矩阵还是单点编码的张量(128,sequence_length,10.000)?

  2. 第二维(即序列长度)有多大? 我是否在批处理的每一行中使用一个句子,将比其他句子短的句子填充零?

  3. 还是一行可以对应多个句子? 例如,一行可以代表“这是一个测试句子。怎么样?”? 如果是这样,第二句话在哪里继续? 在同一批次的下一行中? 还是在下一批的同一行中? 如何保证TensorFlow正确地继续句子?

即使这些问题很简单,我也无法找到答案。 我希望有人能帮帮忙!

  1. 是。 它是3维向量(128,sequence_length,10.000)

  2. 是。 您应该填充句子以使其长度相同。 并且您可以使用tf.nn.dynamic_rnn并且它可以基于tf.while处理可变长度的tf.while 有一篇很棒的文章讨论了这个问题。 https://danijar.com/variable-sequence-lengths-in-tensorflow/您可以在tensorflow dynamic_rnn和rnn之间有什么区别?

  3. 可能。 但网络不知道该句子是否已连接。 它只是将一行视为一句话。 因此,结果将毫无意义。

希望这个答案对您有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM