![](/img/trans.png)
[英]How to calculate accuracy in training RNN language model in Tensorflow?
[英]What is the input to an RNN language model (TensorFlow)?
我想在TensorFlow中建立一个递归神经网络(RNN),以预测单词序列中的下一个单词。 我看过一些教程,例如TensorFlow之一 。 我知道训练文本中的每个单词都映射到一个整数索引。 但是,关于输入,还有一些我没有得到的东西:
批量训练网络,例如同时训练128个示例。 假设我们的词汇中有10.000个单词。 输入到网络的矩阵是大小为(128,sequence_length)的矩阵还是单点编码的张量(128,sequence_length,10.000)?
第二维(即序列长度)有多大? 我是否在批处理的每一行中使用一个句子,将比其他句子短的句子填充零?
还是一行可以对应多个句子? 例如,一行可以代表“这是一个测试句子。怎么样?”? 如果是这样,第二句话在哪里继续? 在同一批次的下一行中? 还是在下一批的同一行中? 如何保证TensorFlow正确地继续句子?
即使这些问题很简单,我也无法找到答案。 我希望有人能帮帮忙!
是。 它是3维向量(128,sequence_length,10.000)
是。 您应该填充句子以使其长度相同。 并且您可以使用tf.nn.dynamic_rnn
并且它可以基于tf.while
处理可变长度的tf.while
。 有一篇很棒的文章讨论了这个问题。 https://danijar.com/variable-sequence-lengths-in-tensorflow/您可以在tensorflow dynamic_rnn和rnn之间有什么区别?
可能。 但网络不知道该句子是否已连接。 它只是将一行视为一句话。 因此,结果将毫无意义。
希望这个答案对您有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.