tf.trainable_variables返回多个图形的变量

时间:2017-07-07 07:13:02

标签: python tensorflow deep-learning

我试图在一个节点张量流示例中编写自己的multi-gpu。

我在这里阅读了代码:https://github.com/tensorflow/models/blob/master/tutorials/image/cifar10/cifar10_multi_gpu_train.py

我的核心代码是:

vars = tf.trainable_variables()
grads = tf.gradients(cost, vars)
tower_grads.append(grads)

但是当程序运行到第二个GPU时,tf.trainable_variables()返回第一轮循环张量流变量和第二轮的张量流变量。

顺便说一句,我认为这个任务是两个GPU使用相同的变量,但渐变是不同的。是不是?

1 个答案:

答案 0 :(得分:0)

问题在于

该变量在第一轮中被命名为aaa

但是变量在第二轮中被命名为aaa_1。即使我设置reuse = True

解决方案是使用tf.get_variable代替tf.Variable

我从https://github.com/normanheckscher/mnist-multi-gpu/blob/master/mnist_multi_gpu_batching_train.py#L356

了解到这一点