【发布时间】:2017-09-26 11:13:31
【问题描述】:
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]吗?
【问题讨论】:
-
这可能是因为 tensorflow 向量(在这种情况下为 B)通常是行向量,所以乘法是作为 (uW + B) 完成的,其中 u 和 B 都是行向量。
-
哦不!我刚刚尝试为 ouput_projection 设置代码,结果证明,无论您给出什么 output_size,最终维度总是等于 lstm 单元的 num_proj 参数的 ouput_size。仍然没有回答最初的疑问:(为什么偏见是 num_decoder_symbol ?)
标签: python tensorflow lstm embedding rnn