2017-06-12 2 views
0

J'utilise multi gpu sur tensorflow. Et je suis confus au sujet de la variable de partage sous la même portée.tensorflow multi gpu variables de partage

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

le plus simple est:

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

Mais dans ma compréhension, au moins le premier GPU doit créer la variable, car il n'a pas variable à réutiliser. Et je trouve aussi du code qui définit reuse = False pour le premier GPU.

Alors, quelle est la bonne façon de procéder?

Répondre

0

Oui, vous avez raison. Pour le premier périphérique, l'indicateur reuse doit être défini sur False. Dans le tutoriel, tf.get_variable_scope().reuse_variables() est appelé après construction of the network. Vous pouvez faire comme ça aussi.

Ou une autre solution possible:

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