为什么TensorFlow有多个GPU会给我这个错误?

时间:2017-08-28 10:20:31

标签: tensorflow neural-network deep-learning conv-neural-network tensorflow-gpu

ResourceExhaustedError (see above for traceback): OOM when allocating tensor with shape[20000,20,20,20,16]   [[Node: Conv3D = Conv3D[T=DT_FLOAT, padding="SAME", strides=[1, 1, 1, 1, 1],
_device="/job:localhost/replica:0/task:0/gpu:0"](Reshape, Variable/read)]]   [[Node: Mean_2/_23 = _Recv[client_terminated=false, recv_device="/job:localhost/replica:0/task:0/cpu:0", send_device="/job:localhost/replica:0/task:0/gpu:0", send_device_incarnation=1, tensor_name="edge_42_Mean_2", tensor_type=DT_FLOAT,
_device="/job:localhost/replica:0/task:0/cpu:0"]()]]

1 个答案:

答案 0 :(得分:0)

  

在分配形状[20000,20,20,20,16]

的张量时的OOM

疯狂猜测:您的批量大小设置为20000并不适合您设备的内存(OOM =内存不足)。 (仅供参考,浮动张量需要20000 * 20 * 20 * 20 * 16 * 4 = 9.54 GBytes的内存) 但是,如果没有代码,那就是我可以说的全部内容。

我的第二个猜测是你试图定义一个大批量并让它自动在设备之间拆分,但这并不是Tensorflow的数据并行性如何与多个设备一起工作。有关如何执行此操作的示例,请查看Distributed Tensorflow guide

请重写您的问题,使其包含一个可运行的示例来重现您的问题