【内存溢出】tensorflow.python.framework.errors_impl.ResourceExhaustedError: OOM when allocating tensor wit

项目场景:

基于yolov3的目标检测


问题描述

完成对car和person两个类别目标检测的训练时,出现以下错误:

tensorflow.python.framework.errors_impl.ResourceExhaustedError: OOM when allocating tensor with shape[32,417,417,32] and type float on /job:localhost/replica:0/task:0/device:CPU:0 by allocator cpu[[{{node zero_padding2d_1/Pad}}]]
Hint: If you want to see a list of allocated tensors when OOM happens, add report_tensor_allocations_upon_oom to RunOptions for current allocation info.

原因分析:

显卡内存不能满足此次训练


解决方案:

1.采用CPU训练

import os
os.environ["CUDA_VISIBLE_DEVICES"] = "-1"

2.减少批处理Batch 的大小

增加训练时间,但是会减少内存的使用。我把batch_size从32减少到16 ,然后问题解决了。

3.降低全连接层的维度

分析错误的位置,在哪一层出现显卡不够,比如在全连接层出现的,则降低全连接层的维度,例如把2048改成1042

4.增加池化层,即pool层

5.缩小输入图片大小


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部