我正尝试在一个节点上编写自己的多gpu tensorflow示例。
我在这里读到了代码: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()
返回第一轮循环的tensorflow变量和第二轮的tensorflow变量。
顺便说一下,我认为这项任务是两个GPU使用相同的变量,但梯度是不同的。是对的吗?
发布于 2017-07-07 17:44:06
问题是
在第一轮中,该变量被命名为aaa
。
但在第二轮中,该变量被命名为aaa_1
。即使我设置了reuse = True
。
解决方案是使用tf.get_variable
而不是tf.Variable
https://stackoverflow.com/questions/44964691
复制相似问题