我正在尝试确定如何在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
这种理解是否正确?
答案 0 :(得分:0)
我不清楚语法,他们目前是否正在创建"权重和偏差的变量或它们实际上是变量?
首次初始化图形时,会创建这些变量,对于连续的批处理,将学习并重用这些参数。
这不完全是logits(它的预计输出);输出投影变量用于投影前一个单元格的输出,投影输出与当前单元格输入组合。
projected_output = tf.matmul(outputs, w) + b