Python tensorflow多GPU训练
根据tensorflow 1.2.0教程,我创建了一个多GPU培训系统: 在创建多GPU版本之前,我能够在单个GPU上安装64个批量大小。我想如果我按照上面的教程创建了一个多GPU版本的代码,我可以通过数据并行化来适应更多的批处理。我希望使用4个GPU,每个GPU的批处理大小为64,但我面临内存不足的问题。当批处理大小为64时,我只能使用2个GPU进行数据并行,而当批处理大小为32时,我只能使用4个GPU。在这两种情况下使用更多GPU时,我都会遇到以下错误:Python tensorflow多GPU训练,python,ubuntu,tensorflow,deep-learning,Python,Ubuntu,Tensorflow,Deep Learning,根据tensorflow 1.2.0教程,我创建了一个多GPU培训系统: 在创建多GPU版本之前,我能够在单个GPU上安装64个批量大小。我想如果我按照上面的教程创建了一个多GPU版本的代码,我可以通过数据并行化来适应更多的批处理。我希望使用4个GPU,每个GPU的批处理大小为64,但我面临内存不足的问题。当批处理大小为64时,我只能使用2个GPU进行数据并行,而当批处理大小为32时,我只能使用4个GPU。在这两种情况下使用更多GPU时,我都会遇到以下错误: tensorflow.python
tensorflow.python.framework.errors_impl.InternalError: Dst tensor is not initialized.
在谷歌上,我发现这个错误发生在GPU内存不足的时候。我不明白为什么会这样。我的机器上有8张nvidia titan卡,每张卡有12吉比特的内存。我不明白为什么当我可以在一个GPU上安装64的批处理大小时,我不能在两个以上的GPU上安装64的相同批处理大小。为什么记忆会饱和?增加使用的GPU数量是否会增加一些开销 是否缺少循环前面定义的变量范围
with tf.variable_scope(tf.get_variable_scope()):
for i in xrange(FLAGS.num_gpus):
with tf.device('/gpu:%d' % i):
我正在使用教程中指定的名称\u范围。我没有遗漏范围,除非你说我应该用变量范围替换名称范围?