博客
关于我
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/

你可能感兴趣的文章
vue.js常用指令及用法
查看>>
vuex的核心概念和运行机制
查看>>
v-if和v-show的区别
查看>>
SSLOJ1692 USACO 3.2 Magic Squares 魔板&P2730
查看>>
P4305 [JLOI2011]不重复数字
查看>>
在Ubuntu上安装GCC编译器
查看>>
给公司妹子讲了好久,头都大了,一个SQL语句是如何执行的?
查看>>
暴打算法:王者级数据结构与LeetCode笔记,一路绿灯杀进字节Java岗
查看>>
不愧是Alibaba技术官,随便甩出本kafka限量笔记,都火遍全网
查看>>
惊喜万分!全靠这份999页Java面试宝典,我刚拿到美团offer
查看>>
限时开源!公布半小时下载量达10W:阿里大牛出品「MyCat笔记」
查看>>
阿里Java全线成长宝典,从P5到P8一应俱全
查看>>
Java程序员面试涨薪手册,字节21火山版强势来袭
查看>>
js:虚拟dom与diff算法
查看>>
计算机系统原理——cachelab 实验1(第一周)
查看>>
github学习
查看>>
PowerMock框架学习
查看>>
JAVA初窥-DAY07
查看>>
数组--Go语言学习笔记
查看>>
Spring Boot (二十一)——自定义异常处理
查看>>