tensorflow multi GPU training



我在TensorFlow 1.2.0的教程之后创建了一个多GPU训练系统: https://github.com/tensorflow/tensorflow/blob/r0.10/tensorflow/models/mimage/cifar10/cifar10/cifar10_multi_gpu_train.py

在创建多GPU版本之前,我能够在单个GPU上适合64个大小。我认为,如果我在上述教程之后创建了代码的多GPU版本,那么我可以通过数据并行化进行更多批次。我希望使用4个GPU,每个GPU的批量大小为64,但我面临的记忆问题。当使用批处理大小为32时,我只能使用2 GPU进行数据并行化数据并行化。在使用更多GPU时,无论哪种情况,我都会收到以下错误:

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

在一些谷歌搜索时,我发现当GPU耗尽内存时,会发生此错误。我不明白为什么会发生这种情况。我有8张NVIDIA TITAN卡,每个机器上都有12次演出的内存。我不明白为什么当我可以在单个GPU上安装64个批量的大小时,我无法在两个以上的GPU上适合相同的批次大小。为什么内存会饱和?是否有一些开销会增加增加所使用的GPU数量?

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

   with tf.variable_scope(tf.get_variable_scope()):
        for i in xrange(FLAGS.num_gpus): 
             with tf.device('/gpu:%d' % i):

最新更新