2017-06-12 27 views
0

テンソルフローでマルチGPUを使用しています。私は同じスコープで変数を共有することについて混乱しています。テンソルフローマルチプル共有変数

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

しかし、それは、それは再利用するための変数を持っていないので、私の理解では、少なくとも第1のGPUは、変数を作成する必要があります:

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

によると、最も簡単な方法です。また、最初のGPUでreuse = Falseを設定するコードもあります。

これを行う正しい方法は何ですか?

答えて

0

はい、あなたは正しいです。最初のデバイスの場合、reuseフラグはFalseに設定する必要があります。チュートリアルではtf.get_variable_scope().reuse_variables()construction of the networkの後に呼び出されます。あなたもこのようにすることができます。

それとも別の可能な解決策:

for i in xrange(FLAGS.num_gpus): 
     with tf.device('/gpu:%d' % i): 
      with tf.variable_scope(name, reuse= i>0): 
       // and do sth