TensorFlow seq2seq教程中GRU或LSTM单元的大小代表什么?

时间:2017-03-29 17:22:48

标签: tensorflow

我正在使用seq2seq model中的TensorFlow tutorials,而我无法理解其中的一些细节。令我困惑的一件事是细胞的“大小”代表什么。我想我对像seq2seq diagram

这样的图像有很高的理解

我相信这表明编码器最后一步的输出是编码器第一步的输入。在这种情况下,每个框都是序列中不同时间步的GRU或LSTM单元格。

我也认为我从表面层面理解如下图: 来自GRU Cell diagramcolah's blog post about LSTM and GRU cells。我的理解是“单元”是一个神经网络,它将输出从一步返回到自身,同时为后续步骤提供新输入。大门控制它“记住”和“忘记”的程度。

我认为我在这种肤浅的,高层次的理解和低级细节之间的层面上感到困惑。听起来像单元格的“大小”是sigmoid和tanh框中的节点数。那是对的吗?如果是这样,那与seq2seq模型的输入大小有什么关系?例如,默认词汇表大小为40,000,默认单元格大小为1024.序列中每个步骤的40,000元素单热词汇表向量如何与1024节点内部单元格大小匹配?这是嵌入包装器的作用吗?

最重要的是,增加或减少细胞大小会产生什么影响?更大的细胞会更好地学习嵌入吗?还是在预测产出?既?

1 个答案:

答案 0 :(得分:2)

  

听起来像是一个单元格的“大小”是节点中的节点数   sigmoid和tanh盒子。这是对的吗?

单元格的大小是RNN状态向量 h 的大小。在LSTM的情况下,它的大小也是 c 。它不是“节点数”(我不确定你的节点是什么意思)。

  

如果是这样,那与seq2seq模型的输入大小有什么关系?   例如,默认词汇表大小为40,000,默认值为   单元格大小为1024. 40,000元素单热词汇表如何   序列的每个步骤的向量与1024节点匹配   内部细胞大小?

模型的输入大小与状态大小无关。将两个向量(输入和状态)连接起来并乘以形状矩阵[state_size + input_size,state_size]以获得下一个状态(简化版本)。

  

这是嵌入包装器的作用吗?

不,嵌入是在进行乘法之前将1-hot输入向量与大小为[vocab_size,input_size]的矩阵相乘的结果。