训练深度学习模型时报错ResourceExhaustedError: OOM when allocating tensor with shape原因和解决方法分析
一、报错内容
报错内容如下图所示:
这是在采用tensorflow训练网络时非常常见的报错形式。
二、原因分析
**核心原因:**GPU显存不足。
表面原因:
- Batchsize太大;
- 图片尺寸太大;
- 池化层池化效果不佳;
- 等等。
二、解决方法
**核心方法:**使用一切手段减少模型内存占用或扩大显卡内存或采用其他内存。开源节流相辅相成。
常见方法:
- 减小Batchsize;
- 分析错误的位置,在哪一层出现显卡不够,比如在全连接层出现的,则降低全连接层的维度,例如把2048改成1024;
- 增加池化层;
- 修改输入图片的大小;
- 如果计算机中包含大于一个GPU,可用以下代码同时调用N个GPU: