在tensorflow中的MyBasicLSTMCell中实现__call__函数

时间:2016-12-29 10:32:37

标签: tensorflow lstm

我的代码有一个奇怪的问题。我正在尝试在__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变量时,差异消失了。这意味着无论评论如何,我都会得到相同的输出。

0 个答案:

没有答案