tensorflow多GPU培训

时间:2017-06-27 23:14:40

标签: python ubuntu tensorflow deep-learning

我按照tensorflow 1.2.0的教程创建了一个多GPU培训系统:   https://github.com/tensorflow/tensorflow/blob/r0.10/tensorflow/models/image/cifar10/cifar10_multi_gpu_train.py

在创建多GPU版本之前,我能够在单个GPU上安装64的批量大小。我想如果我按照上面的教程创建了一个多GPU版本的代码,我可以通过数据并行化来适应更多批次。我希望每个批量大小为64的4 GPUS,但我面临内存不足的问题。当使用批量大小为64时,我只能使用2 GPUS进行数据并行化,当使用批量大小为32时,只能使用4 GPUS。在任何一种情况下使用更多GPUS时,我收到以下错误:

tensorflow.python.framework.errors_impl.InternalError: Dst tensor is not initialized.

在一些谷歌搜索中,我发现当GPU内存不足时会发生此错误。我不明白为什么会这样。我有8张nvidia titan卡,每台机器上有12 Gig的内存。我不明白为什么当我可以在单个GPU上安装64的批量大小时,我无法在两个以上的GPUS上安装相同批量的64。为什么内存会饱和?是否有一些开销随着使用的GPUS数量的增加而增加?

1 个答案:

答案 0 :(得分:1)

可能是它缺少在循环前面定义的变量范围

   with tf.variable_scope(tf.get_variable_scope()):

        for i in xrange(FLAGS.num_gpus): 

             with tf.device('/gpu:%d' % i):
相关问题