博客
关于我
Resource exhausted: OOM when 问题分析及原因
阅读量:287 次
发布时间:2019-03-03

本文共 679 字,大约阅读时间需要 2 分钟。

昨晚用VGG16训练模型时,弹了个资源耗尽的错误,一脸懵逼,在VGG8跑得好好的,换了个网络就不行了,报错如下,还有很长一大段的,但关键是这段:

2019-05-06 10:54:24.400484: W tensorflow/core/framework/op_kernel.cc:1275] OP_REQUIRES failed at conv_ops.cc:398 : Resource exhausted: OOM when allocating tensor with shape[64,64,224,224] and type float on /job:localhost/replica:0/task:0/device:GPU:0 by allocator GPU_0_bfc

分析一下就可以看出问题了,我设置的batch_size 是64,图片输入大小为224x224,通过卷积,已经拉伸到64维了,所以是tensor with shape[64,64,224,224],在细算下占用内存的大小就知道为什么报错了,数据类型是float32,即4B存一个数据,计算一下所需内存大小:64*64*224*224*4=822083584B/1024/1024=784.0M,所以算到这一层就需要784M的GPU显存,我用的k40,11G显存,就报错了,说明缓存不足啊,其实我同时调用了2条k40,也不行。

解决方法也很简单,两个:

  1. 减少batch_size的大小,我设置的是64,我改为16就可以跑了。
  2. 咬咬牙,换个显存大一点的显卡,完美解决问题

转载地址:http://dxgl.baihongyu.com/

你可能感兴趣的文章
搜集整理随机产生人的姓名的2种方法
查看>>
最简单的Socket程序[入门篇]
查看>>
C#实现的18位身份证号码最新算法[验证部分]
查看>>
VS2005图标默认存放位置
查看>>
常用正则表达式
查看>>
C#中换行的代码
查看>>
用正则表达式过滤多余空格
查看>>
XML:采用XHTML和CSS设计可重用可换肤的WEB站点
查看>>
U盘“无法识别的USB设备”解决办法
查看>>
4-6 在Vue中使用插槽
查看>>
十二、 PHP (PDO)操作数据库
查看>>
二叉树 简单实现 问题解决
查看>>
第2章 可行性研究
查看>>
python入门——运算符
查看>>
less简介、less安装、编译、less语法之变量、嵌套、类混入、函数混入、运算、less文件导入
查看>>
【springmvc】传值的几种方式&&postman接口测试
查看>>
泳道图简介
查看>>
Tomcat6中web项目部署路径webapps和wtpwebapps的区别
查看>>
Java判断字符串是否为金额
查看>>
CodeCombat代码全记录(Python学习利器)--安息之云山峰(第四章)代码9
查看>>