tensorflow 多 GPU 共享变量
tensorflow multi gpu sharing variables
我在 tensorflow 上使用多 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 的代码。
那么正确的做法是什么?
是的,你是对的。对于第一个设备,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
我在 tensorflow 上使用多 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 的代码。
那么正确的做法是什么?
是的,你是对的。对于第一个设备,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