TensorFlow:我只定义了4个变量,但trainable_variables()显示的更多

时间:2016-07-01 10:39:35

标签: tensorflow

我正在尝试使用TensorFlow。我在我的代码中只定义了四个tf.Variable()实例,然后我继续通过一些使用这四个变量的tf.placeholders(root.out)来定义输出(tfgraphinputs)。 然后我跑:

    sess = tf.InteractiveSession()
    sess.run(tf.initialize_all_variables())
    print len(tfgraphinputs)
    y = tf.placeholder(tf.float32, name='y')
    cost = tf.reduce_mean(tf.square(tf.cast(root.out, tf.float32) - y))
    optimizer = tf.train.GradientDescentOptimizer(learning_rate=0.1)
    print 'no trainable:',len(tf.trainable_variables())
    train_op = optimizer.minimize(cost)

在打印len(tfgraphinputs)时,我得到正确的输入数量。但是,在打印no trainable时,即使只有4个变量,我也会获得312(!)。然后,由于minimize(cost),最后一个命令(No gradients provided for any variable)失败,显示了一个非常长的ValueError变量列表。

这怎么可能?在我的代码中,我正在重用变量(也就是说,我将一些数据乘以我的变量不止一次),这个过程是否有可能重复它们?

编辑:我想我明白了,在计算种子时我不能使用tf.argmax。是这样吗?

0 个答案:

没有答案