tf.contrib.legacy_seq2seq.embedding_rnn_seq2seq
的官方文档对output_projection参数有以下解释:
output_projection
:没有或一对(W,B)的输出投影权重和偏差; W具有形状[output_size x num_decoder_symbols],B具有形状[num_decoder_symbols];如果提供且feed_previous = True,则每个馈送的先前输出将首先乘以W并添加B.
我不明白为什么B参数的大小应该是[num_decoder_symbols]
?由于输出首先乘以W然后再加上偏差,不应该是[output_size]
吗?
答案 0 :(得分:0)
好的!所以,我找到了问题的答案。
混淆的主要原因在于维度
W矩阵本身的[output_size x num_decoder_symbols]
。
这里的output_size
并不是指您想要的 output_size ,而是LSTM单元格的output_size(与隐藏向量的大小相同)。因此,矩阵乘法u x W
将生成大小为num_decoder_symbols
的向量,可以将其视为输出符号的对数。