def attention(decoder_output, seq_outputs, output_size, time_steps,
name="attention"):
with tf.variable_scope(name):
ui = []
w_1 = tf.get_variable("w1", [output_size, output_size],
tf.float32,
tf.contrib.layers.xavier_initializer())
w_2 = tf.get_variable("w2", [output_size, output_size],
tf.float32,
tf.contrib.layers.xavier_initializer())
v = tf.get_variable("v", [output_size, 1],
tf.float32,
tf.contrib.layers.xavier_initializer())
for seq_out in seq_outputs:
ui.append(tf.matmul(tf.nn.tanh(tf.matmul(seq_out, w_1) +
tf.matmul(decoder_output, w_2)), v))
return ui
评论列表
文章目录