我正在尝试使用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
。是这样吗?