我正尝试在一个节点上编写自己的多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
复制相似问题