如何在seq2seq中使用output_projection(权重,偏差)?

时间:2017-08-16 14:27:33

标签: python tensorflow

我正在尝试确定如何在embedding_rnn_decoder中使用output_projection参数。 seq2seq教程代码显示了output_projection here的生成 - 我能否假设变量的名称不会改变?

w_t = tf.get_variable("proj_w", [self.target_vocab_size, size], dtype=dtype)
w = tf.transpose(w_t)
b = tf.get_variable("proj_b", [self.target_vocab_size], dtype=dtype)
output_projection = (w, b)

语法对我来说不清楚,他们目前是否正在“创建”权重和偏差的变量,或者这些实际上是他们得到的变量?如果他们正在创建它们,那么我的理解是这些变量现在将存储RNN最后一层的权重/偏差,并可用于生成logits

logits = tf.matmul(outputs, w) + b

这种理解是否正确?

1 个答案:

答案 0 :(得分:0)

  

我不清楚语法,他们目前是否正在创建"权重和偏差的变量或它们实际上是变量?

首次初始化图形时,会创建这些变量,对于连续的批处理,将学习并重用这些参数。

use of output_projecttion

这不完全是logits(它的预计输出);输出投影变量用于投影前一个单元格的输出,投影输出与当前单元格输入组合。

projected_output = tf.matmul(outputs, w) + b