tensorflow多个gpu共享变量

时间:2017-06-12 13:18:51

标签: tensorflow tensorflow-gpu

我在tensorflow上使用multi gpu。而且我对在相同范围内共享变量感到困惑。

根据https://github.com/tensorflow/models/blob/master/tutorials/image/cifar10/cifar10_multi_gpu_train.py

最简单的方法是:

for i in xrange(FLAGS.num_gpus):
    with tf.device('/gpu:%d' % i):
        tf.get_variable_scope().reuse_variables()
        // and do sth.

但在我的理解中,至少第一个GPU必须创建变量,因为它没有可重用的变量。我还发现一些代码为第一个GPU设置了reuse = False。

那么正确的方法是什么?

1 个答案:

答案 0 :(得分:1)

是的,你是对的。对于第一个设备,reuse标志应设置为False。在教程中,tf.get_variable_scope().reuse_variables()之后调用 for i in xrange(FLAGS.num_gpus): with tf.device('/gpu:%d' % i): with tf.variable_scope(name, reuse= i>0): // and do sth 。你也可以这样做。

或另一种可能的解决方案:

{{1}}