我的代码有一个奇怪的问题。我正在尝试在__call__
上实施BasicLSTMCell
功能。这是问题所在。我有以下代码。
def __call__(self, inputs, state, scope=None):
c, h = array_ops.split(1, 2, state)
#bbb = tf.concat(1,[inputs,h])
matrix = tf.get_variable("W", [320, 80])
concat = tf.matmul(tf.concat(1,[inputs,h]), matrix)
i, j, f, o = array_ops.split(1, 4, concat)
new_c = c * sigmoid(f + self._forget_bias) + sigmoid(i) * tanh(j)
new_h = tanh(new_c) * sigmoid(o)
return new_h, array_ops.concat(1, [new_c, new_h])
在上面的代码中,变量bbb
未在任何地方使用。令人惊讶的是,取决于我是否评论,我得到不同的输出。奇怪的。更奇怪的是,当我在bbb
变量之后移动matrix
变量时,差异消失了。这意味着无论评论如何,我都会得到相同的输出。