我正在将Tensorflow与GPU(与Keras结合使用)来训练CNN(与来自ResNet101的Transfer Learning)。 我的GPU是8GB的RTX 2070。但是由于某种原因,我总是收到一个内存分配错误(即使消耗低于可用内存)。这是日志:
2019-12-27 11:43:40.614258:我 tensorflow / core / common_runtime / gpu / gpu_device.cc:1433]找到设备0 具有属性:名称:GeForce RTX 2070主要:7次要:5 memoryClockRate(GHz):1.62 pciBusID:0000:01:00.0 totalMemory:8.00GiB freeMemory:6.59GiB
2019-12-27 11:43:40.641529:我 tensorflow / core / common_runtime / gpu / gpu_device.cc:1512]添加可见 gpu设备:0
2019-12-27 11:44:04.906853:我 tensorflow / core / common_runtime / gpu / gpu_device.cc:984]设备 将StreamExecutor与强度1边缘矩阵互连:
2019-12-27 11:44:04.911460:我 tensorflow / core / common_runtime / gpu / gpu_device.cc:990] 0
2019-12-27 11:44:04.914264:我 tensorflow / core / common_runtime / gpu / gpu_device.cc:1003] 0:N
2019-12-27 11:44:04.945902:我 tensorflow / core / common_runtime / gpu / gpu_device.cc:1115]已创建 TensorFlow设备(/ job:localhost /副本:0 /任务:0 /设备:GPU:0与 6317 MB内存)->物理GPU(设备:0,名称:GeForce RTX 2070, pci总线ID:0000:01:00.0,计算能力:7.5)
2019-12-27 11:44:06.127068:E tensorflow / stream_executor / cuda / cuda_driver.cc:806]分配失败 设备中的6.17G(6624727296字节):CUDA_ERROR_OUT_OF_MEMORY:内存不足
2019-12-27 11:44:06.481222:E tensorflow / stream_executor / cuda / cuda_driver.cc:806]分配失败 设备中的5.55G(5962254336字节):CUDA_ERROR_OUT_OF_MEMORY:内存不足
2019-12-27 11:44:06.921023:E tensorflow / stream_executor / cuda / cuda_driver.cc:806]分配失败 来自设备的5.00G(5366028800字节):CUDA_ERROR_OUT_OF_MEMORY:内存不足
2019-12-27 11:44:07.287418:E tensorflow / stream_executor / cuda / cuda_driver.cc:806]分配失败 来自设备的4.50G(4829425664字节):CUDA_ERROR_OUT_OF_MEMORY:内存不足
即使可用内存为6.59GB,也无法分配4.5GB。发生这种情况的任何原因以及如何解决?
答案 0 :(得分:0)
尝试减小批处理大小或减小图像的大小。可能会得出不同的结果,但它会适合您的记忆。