【发布时间】:2017-07-14 19:52:25
【问题描述】:
代码如下:
def lstm(o, i, state):
#these are all calculated seperately, no overlap until....
#(input * input weights) + (output * weights for previous output) + bias
input_gate = tf.sigmoid(tf.matmul(i, w_ii) + tf.matmul(o,w_io) + b_i)
#(input * forget weights) + (output * weights for previous output) + bias
output_gate = tf.sigmoid(tf.matmul(i, w_oi) + tf.matmul(o,w_oo) + b_o)
#(input * forget weights) + (output * weights for previous output) + bias
forget_gate = tf.sigmoid(tf.matmul(i, w_fi) + tf.matmul(o,w_fo) + b_f)
memory_cell = tf.sigmoid(tf.matmul(i, w_ci) + tf.matmul(o,w_co) + b_c)
state = forget_gate * state + input_gate * memory_cell
output = output_gate * tf.tanh(state)
return output, state
这是lstm的图纸:
我很难理解这两者是如何匹配的。任何帮助将非常感激。
【问题讨论】:
-
您特别需要帮助解释什么?
-
@JonasAdler 所以,我不确定为什么每个门都有两个权重。此外,
c_t似乎与输入、输出和遗忘门交互,但我在代码中没有看到。
标签: tensorflow neural-network lstm recurrent-neural-network