我在使用caffe进行训练的时候在未耗尽显存的情况下显示显存溢出

报错信息:

I0227 13:57:10.174791 17889 solver.cpp:365] Model Synchronization Communication time 0.071111 second
I0227 13:57:10.275547 17889 solver.cpp:365] Model Synchronization Communication time 0.0634275 second
I0227 13:57:10.275617 17889 solver.cpp:456] Iteration 0, Testing net (#0)
I0227 13:57:11.660853 17889 cudnn_conv_layer.cpp:186] Optimized cudnn conv
I0227 14:18:10.495625 17889 solver.cpp:513]     Test net output #0: accuracy_top1 = 0.857785
I0227 14:18:10.495926 17889 solver.cpp:513]     Test net output #1: accuracy_top1_motion = 0.0103093
I0227 14:18:10.495939 17889 solver.cpp:513]     Test net output #2: accuracy_top1_motion_14 = 0.0103093
I0227 14:18:10.495947 17889 solver.cpp:513]     Test net output #3: accuracy_top1_motion_28 = 0.010838
I0227 14:18:10.495954 17889 solver.cpp:513]     Test net output #4: accuracy_top1_motion_fusion = 0.856992
I0227 14:18:10.495965 17889 solver.cpp:513]     Test net output #5: loss = 4.6683 (* 1 = 4.6683 loss)
I0227 14:18:10.495975 17889 solver.cpp:513]     Test net output #6: loss_14 = 4.6196 (* 1 = 4.6196 loss)
I0227 14:18:10.495985 17889 solver.cpp:513]     Test net output #7: loss_28 = 4.62227 (* 1 = 4.62227 loss)
F0227 14:18:11.252009 17892 syncedmem.cpp:51] Check failed: error == cudaSuccess (2 vs. 0)  out of memory
*** Check failure stack trace: ***
F0227 14:18:11.252311 17889 syncedmem.cpp:51] Check failed: error == cudaSuccess (2 vs. 0)  out of memory
*** Check failure stack trace: ***
    @     0x7fd2deed9dbd  google::LogMessage::Fail()
    @     0x7f70d80dddbd  google::LogMessage::Fail()
F0227 14:18:11.254006 17891 syncedmem.cpp:51] Check failed: error == cudaSuccess (2 vs. 0)  out of memory
*** Check failure stack trace: ***
    @     0x7fd2deedbcf8  google::LogMessage::SendToLog()
    @     0x7f70d80dfcf8  google::LogMessage::SendToLog()
F0227 14:18:11.254802 17890 syncedmem.cpp:51] Check failed: error == cudaSuccess (2 vs. 0)  out of memory
*** Check failure stack trace: ***
    @     0x7f766019fdbd  google::LogMessage::Fail()
    @     0x7fd2deed9953  google::LogMessage::Flush()
    @     0x7f70d80dd953  google::LogMessage::Flush()
    @     0x7f714c5cedbd  google::LogMessage::Fail()
    @     0x7f76601a1cf8  google::LogMessage::SendToLog()
    @     0x7fd2deedc62e  google::LogMessageFatal::~LogMessageFatal()
    @     0x7f70d80e062e  google::LogMessageFatal::~LogMessageFatal()
    @     0x7f714c5d0cf8  google::LogMessage::SendToLog()
    @     0x7f766019f953  google::LogMessage::Flush()
    @     0x7fd2df2aaa6a  caffe::SyncedMemory::mutable_gpu_data()
    @     0x7f70d84aea6a  caffe::SyncedMemory::mutable_gpu_data()
    @     0x7f714c5ce953  google::LogMessage::Flush()
    @     0x7f76601a262e  google::LogMessageFatal::~LogMessageFatal()
    @     0x7fd2df3cc9f2  caffe::Blob<>::mutable_gpu_data()
    @     0x7f70d85d09f2  caffe::Blob<>::mutable_gpu_data()
    @     0x7f714c5d162e  google::LogMessageFatal::~LogMessageFatal()
    @     0x7f7660570a6a  caffe::SyncedMemory::mutable_gpu_data()
    @     0x7fd2df423c84  caffe::BNLayer<>::Backward_gpu()
    @     0x7f70d8627c84  caffe::BNLayer<>::Backward_gpu()
    @     0x7f714c99fa6a  caffe::SyncedMemory::mutable_gpu_data()
    @     0x7f76606929f2  caffe::Blob<>::mutable_gpu_data()
    @     0x7fd2df3f2905  caffe::CuDNNBNLayer<>::Backward_gpu()
    @     0x7f70d85f6905  caffe::CuDNNBNLayer<>::Backward_gpu()
    @     0x7f714cac19f2  caffe::Blob<>::mutable_gpu_data()
    @     0x7f76606e9c84  caffe::BNLayer<>::Backward_gpu()
    @     0x7fd2df236ad6  caffe::Net<>::BackwardFromTo()
    @     0x7f70d843aad6  caffe::Net<>::BackwardFromTo()
    @     0x7f714cb18c84  caffe::BNLayer<>::Backward_gpu()
    @     0x7f76606b8905  caffe::CuDNNBNLayer<>::Backward_gpu()
    @     0x7fd2df236d71  caffe::Net<>::Backward()
    @     0x7f70d843ad71  caffe::Net<>::Backward()
    @     0x7f714cae7905  caffe::CuDNNBNLayer<>::Backward_gpu()
    @     0x7f76604fcad6  caffe::Net<>::BackwardFromTo()
    @     0x7fd2df3c7bdf  caffe::Solver<>::Step()
    @     0x7f70d85cbbdf  caffe::Solver<>::Step()
    @     0x7f714c92bad6  caffe::Net<>::BackwardFromTo()
    @     0x7f76604fcd71  caffe::Net<>::Backward()
    @     0x7fd2df3c8408  caffe::Solver<>::Solve()
    @           0x408e76  train()
    @           0x407386  main
    @     0x7f70d85cc408  caffe::Solver<>::Solve()
    @           0x408e76  train()
    @           0x407386  main
    @     0x7f714c92bd71  caffe::Net<>::Backward()
    @     0x7f766068dbdf  caffe::Solver<>::Step()
    @     0x7fd2de10cf45  __libc_start_main
    @           0x40793d  (unknown)
    @     0x7f70d7310f45  __libc_start_main
    @           0x40793d  (unknown)
    @     0x7f714cabcbdf  caffe::Solver<>::Step()
    @     0x7f766068e408  caffe::Solver<>::Solve()
    @           0x408e76  train()
    @           0x407386  main
    @     0x7f714cabd408  caffe::Solver<>::Solve()
    @           0x408e76  train()
    @           0x407386  main
    @     0x7f765f3d2f45  __libc_start_main
    @           0x40793d  (unknown)
    @     0x7f714b801f45  __libc_start_main
    @           0x40793d  (unknown)
--------------------------------------------------------------------------
mpirun noticed that process rank 0 with PID 0 on node s2 exited on signal 6 (Aborted).
--------------------------------------------------------------------------

资源使用情况:
图片说明

1个回答

syncedmem.cpp:51  CaffeMallocHost(&cpu_ptr_, size_, &cpu_malloc_use_cuda_);

从报错的代码点来看, 应该是想再分配 size_个内存, 不够用了,所以报错了.
目测是你的batch_size设太大, 每个batch整的体积有点大, 导致的. 你要以把batch设小点, 再试一下.

Hiker_H
Hiker1995 对的,我将batch_size改为最小就可以运行了,谢谢!
7 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Tensorflow显存溢出
报错信息 一直是 InternalError: Dst tensor is not initialized. 然后显示一大堆信息,通过谷歌大部分找到的就是 GPU 显存溢出。然后 加上 CUDA_VISIBLE_DEVICES=1 Environment Variable Syntax                               Results CUDA_VISIBL
caffe小显存问题
问题描述: 本人使用硬件1050 2G显卡,在运行faster-rcnn中的./tools/demo.py时,出现以下问题: Loaded network /mydata/rcnn/py-faster-rcnn/data/faster_rcnn_models/VGG16_faster_rcnn_final.caffemodel F0318 09:18:46.357918 17490 sync
caffe显存问题
caffe在test的时候,blob的capacity_这个值是初始化是根据deploy的h和w来确定的,在真正开始跑的时候,可能test的时候输入尺寸并不是deploy的大小,比这个大小小的时候,在reshape之后,由于count_的值小于capacity_导致capacity_并不更新,从而在分配显存的时候,总是对不上,感觉显存多分配了。这是在图像超分遇到的问题,如果不存在这个用法,也就是说...
我的显存
1哪可以看到显卡的显存rn2.读懂开机那时的内容,是用break锁定屏幕吗,那时候太快了,读不过来,无意中锁定了屏幕,又看不懂那东东。郁闷
caffe 使用LMDB数据库训练时 显存爆炸的问题
data_layer.cpp 中该层的析构函数定义的不够好,改成如下版本即可 template DataLayer::~DataLayer() {   this->JoinPrefetchThread();   // clean up the database resources #if defined(USE_LEVELDB) || defined(USE_LMDB)   switch (t
操作显存时有时候显示不了的原因
比如酱紫: [plain] view plain copy  print? assume cs:code      data segment       db 'Welcome to masm!',0   data ends      code segment      start:  mov dh,8               
TensorFlow 显存使用机制
默认情况下,TensorFlow 会映射进程可见的所有 GPU 的几乎所有 GPU 内存(取决于 CUDA_VISIBLE_DEVICES)。通过减少内存碎片,可以更有效地使用设备上相对宝贵的 GPU 内存资源。 在某些情况下,最理想的是进程只分配可用内存的一个子集,或者仅根据进程需要增加内存使用量。 TensorFlow 在 Session 上提供两个 Config 选项来进行控制。 (1)...
使用directdraw操作显存
我在一个程序里, 用一块buffer存储了要显示画面的像素数组, 里面的像素格式是rgb565的, 目前我使用数组转化成位图作为一个位图能够输出, 但是我希望能操作显存, 使用了directdraw里的LPDIRECTDRAWSURFACE, 通过lock取出了lpSurface的指针, 现在我不知道应该怎么操作, 可以直接使显存的那个指针指向我在内存中开辟的那块区域, 不用每次里面的数据发生变化以后还要将数据转化成位图才能显示. 希望大家能够帮忙. 先谢谢了.
TensorFlow使用显存的设置
TensorFlow默认情况下训练会占用全部显存。 可以设置参数来修改显存使用情况。 设置使用显存比例 在构造tf.Session()时候通过传递tf.GPUOptions作为可选配置参数的一部分来显式地指定需要分配的显存比例,如下所示: 假如有12GB的显存并使用其中的4GB: gpu_options = tf.GPUOptions(per_process_gpu_memory...
显存问题
刚刚看过电脑报的合订本,上面有一篇小东西写的是关于tnt2显卡的,说开机花屏,进入系统后有竖条光栅,不过打开文字处理等软件就看不见了,说实显存出错,那个人就用热风枪吹下了4片显存。看完后我想起了我同学给我的那一块他说不能用的tnt,同样的问题,只是没有那么严重,我想估计实显存坏的少一点吧!现在问题来了,我怎么知道是那几片显存有问题呢?那错了怎么办呢?我很想救救他哦,毕竟修好了给我用啊,我的voodoo2显在镇的是不行了,连个支持dx8的驱动都找不到,请高手指教!rn谢谢
直接使用显存
介绍移动设备,介绍一款游戏引擎具备的要素,并依次进行开发实现,采用标准C++语言进行开发,需要有扎实的C++基础
关于显存的
考证一段话:b8000~bffff共32k空间,是80×25模式下的显示缓冲区,分为8页,当前显示器显示第0页内容,也就是b8000~b8f9f中的4000个字节内容在显示器上被看到。rn问题:写入1~7页的内容如何被看到?还有显存有什么用?
有没有直接的显存对显存拷贝方法
//获得表面rn IDirect3DSurface9* pBackBuffer = NULL;rn V_RETURN( m_pd3dDevice->GetBackBuffer( 0, 0, D3DBACKBUFFER_TYPE_MONO, &pBackBuffer ) );rnrnrn //创建背景纹理rn V_RETURN( m_pd3dDevice->CreateTexture( pBackBufferSurfaceDesc->Width, pBackBufferSurfaceDesc->Height, 1, 0, pBackBufferSurfaceDesc->Format, D3DPOOL_DEFAULT, &m_pBackgroundTexture, NULL ));rn rn 如何才能快迅的将pBackBuffer里的图像拷贝到m_pBackgroundTexture里呢?使用以下语句非常耗时,因为用memcpy()先要将显存拷到内存在拷到显存。各位大哥大姐有没有直接的显存对显存拷贝方法。再救吾命一次。rnrn D3DLOCKED_RECT lr;rn pBackBuffer->LockRect( &lr, NULL, D3DLOCK_READONLY );rn DWORD* pBitmap = ( DWORD* )lr.pBits;rnrn //填充纹理元素 rn D3DLOCKED_RECT d3dlr;rn m_pBackgroundTexture->LockRect( 0, &d3dlr, 0, 0 );rn DWORD* pDst = (DWORD*)d3dlr.pBits;rnrn int leng = 0;rn int lrPitch = lr.Pitch/4;rn int d3dlrPitch = d3dlr.Pitch/4;rn for (int i=0; iHeight; i++)rn rn memcpy(pDst,pBitmap,pBackBufferSurfaceDesc->Width);rn pBitmap += lrPitch;rn pDst += d3dlrPitch;rn rnrn m_pBackgroundTexture->UnlockRect(0);rn pBackBuffer->UnlockRect();rnrnrn
Tensorflow设置显存自适应,显存比例
1 终端执行程序时设置使用的GPU 如果电脑有多个GPU,tensorflow默认全部使用。如果想只使用部分GPU,可以设置CUDA_VISIBLE_DEVICES。在调用python程序时,可以使用(见第一个参考网址Franck Dernoncourt的回复): CUDA_VISIBLE_DEVICES=1 python my_script.py     Environment V...
关于直接读取显存,和显存相关的一些问题
最近想直接读取显卡生成显示在桌面上的图像。rn有几个疑惑,渴求解疑。rn1:使用directx来读取frontbuffer可以吗,如果方向走错了,怎么样能达到要求,因为使用bitblt读取屏幕数据的话,会有一个显存到内存的传输过程,这样效率会不高,还会导致其他一些问题。rnrn2:显存是用来存储处理过后和处理之前的数据的,我可不可以认为最终显示在屏幕上的一帧数据,在显示前的那一刻是在显存中的。 如果是一个R8B8G8A8格式的数据。1920×1080分辨率。 岂不是要 1920*1080*4/1024/1024 = 7.9G 的显存,这样现在的显卡完全达不到。 还是说显存里面只存储了部分屏幕的数据,然后不停的处理,输出到显示器上。如果是这样的话,那么某一刻的话 ,我就没法完全获取桌面上的数据了吗?rnrnthanks a lot,in advance. :)
【显存地址问题】主内存vs显存
原来的PC设计的时候,内存有一块区域(640K-1M)之间,有一块作为显存使用,请问现在的还是这么处理的嘛?感觉现在的现存速度实在是太快了,如果还是这么处理的话实在太浪费硬件了。不是的话,现在怎么把这块向下兼容的转移了呢,谢谢
监视显存
监视显存使用情况watch [options] command 每10秒更新一次显存使用情况watch -n 10 nvidia-smi
显存太小
我的显卡是INTRL815EEA主板上带的显存太小了玩游戏不爽,,不知道能不能让他从内存里分一点
关于显存
是不是往A0021写入数据就等于往显存写入数据?写入显存的数据要先经过内存到显存?
屏幕共享 显存
要做屏幕共享,但避免采取截屏、压缩的方式,为了提高速度想通过读取显存数据直接传输,不知道这样行不行的通?
显存共享
各位好:rn 请问显存共享是怎么回事!我机子是128M的,可是现实96M,rn 32M是否为现存占用,这样有什么好处吗?还有一台256M显示rn 128M。请解释一下! rn rn
pytorch 减小显存消耗,优化显存使用,避免out of memory
pytorch 减小显存消耗,优化显存使用,避免out of memory 本文是整理了大神的两篇博客: 如何计算模型以及中间变量的显存占用大小: https://oldpan.me/archives/how-to-calculate-gpu-memory 如何在Pytorch中精细化利用显存: https://oldpan.me/archives/how-to-use-memory-p...
os中显存显示问题
我现在在做一个简单的OS,但是每次有新的内容,往显存写的时候就在屏幕下方去了,求教高人。。。
我的显存最好用多少的?
我的破笔记本昨天升了下内存以前是128的DDR ,机器装的win2000pro,很满。昨天有加了一条128的条子,现在256了。以前是16M的显存,现在显存划成32M了。rn我的机器不玩游戏,顶多就是联众和边锋游戏。大部分时间就是上网聊天,用一些软件而已了。我想问显存是16还是32比较合理些!谢谢
Caffe训练和使用时候的当前路径
前言 具体的应该说题目是本人遇到的大坑小坑,遇到的都记录一下吧。 本人运行环境:win7 64位+matlab2015rb+vs2013/2012 关于配置文件中(prototxt)相对路径的问题 这个件事情是需要分开讲的,完全用c++接口,用原始项目编译出来的caffe.exe来进行训练的话,当前目录就是你运行caffe.exe的目录(我假设你已经把caffe.exe的目录放到环境变量里
训练insightface,id数太多,耗费显存
-
Keras限制GPU显存使用
深度学习门槛越来越低,尤其是Keras这样的高层次API加入以后,简单几行代码就能构建网络并得到不错的效果。 最近工作需要,开始使用Keras写3DConv做3D数据分类。 数据是肺部CT,目标是对检测网络得到的结果使用3D Conv网络做2分类。2D的检测网络获得肺部结节的ROI,但是由于二维上结节目标与肺部正常组织结构(如血管,气管等)特征类似,所以检测结果中包含了大量“假阳”,所以在检测
Tensorflow与Keras自适应使用显存
Tensorflow支持基于cuda内核与cudnn的GPU加速,Keras出现较晚,为Tensorflow的高层框架,由于Keras使用的方便性与很好的延展性,之后更是作为Tensorflow的官方指定第三方支持开源框架。但两者在使用GPU时都有一个特点,就是默认为全占满模式。在训练的情况下,特别是分步训练时会导致显存溢出,导致程序崩溃。可以使用自适应配置来调整显存的使用情况。 一、Ten...
使用Tensorflow控制显存的暴增
在导入库文件头部加入下面语句: import tensorflow as tf os.environ["CUDA_VISIBLE_DEVICES"] = '0' config = tf.ConfigProto() config.gpu_options.allow_growth = True session = tf.Session(config=config) 分别是指定使用哪一块GPU,继承...
使用GPU训练大神经网络之 显存控制策略与提升
本文是“[PPoPP18] SuperNeurons:Dynamic GPU Memory Management for Training Deep Neural Networks”的论文阅读笔记,论文、talk视频PPT等详见作者主页:https://linnanwang.github.io/ 参考资料: https://linnanwang.github.io/ How to Optim...
tensorflow使用GPU训练时的显存占用问题
最近用GoogleNet (inception-v3)做fine-tune训练时,遇到了一个问题。当我选择单个GPU训练时候,服务器中所有的GPU显存都会被占满,如下图所示:     出现以上问题的原因是tensorflow在训练时默认占用所有GPU的显存。     可以通过以下方式解决该问题: 1、在构造tf.Session()时候通过传递tf.GPUOptions作为可选配置参数
(转)tensorflow使用GPU训练时的显存占用问题
https://blog.csdn.net/sunwuhuang1/article/details/53946462 &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;最近用GoogleNet (inception-v3)做fine-tune训练时,遇到了一个问题。当我选择单个GPU训练时候,服务器中所有的GPU显存都...
tensorflow显存管理、tensorflow使用多个gpu训练
通常在程序开始之前并不知道需要多大的显存,程序会去申请GPU的显存的50% 比如一个8G的内存,被占用了2G,那么程序会申请4G的显存(因为有足够的剩余显存) 如果此时显存被占用7G,那么程序会申请剩下的所有的1G的显存。也许你的程序根本用不着这么多显存,200M也许就够了,这时候如果程序能按照需求去申请就好了,幸运的是,这样的方法是存在的: import tensorflow...
opencl 可以进行显存之间的拷贝吗?
有没有相应的函数调用?
GPU和显存的关系
gpu和显存类似于,cpu和内存的关系。显存用来存放模型,数据,显存越大,所能够运行的网络就越大。GPU是计算单元,用来进行数值计算。 神经网络的显存占用包括: 1)模型参数的显存占用:只有有参数的层才会有显存占用,这部分的显存占用和输入无关,模型加载完之后就会占用有参数的层包括:卷积层,全连接层,BatchNorm,Embedding层。无参数的层:激活层sigmoid(sigmoid,re...
Python 查看显存大小
背景:因为一些需求,需要在python程序中查看显存的占用情况。 1.安装NVML库 pip install nvidia-ml-py 2.使用 import pynvml pynvml.nvmlInit() handle = pynvml.nvmlDeviceGetHandleByIndex(0) #gpu_id meminfo = pynvml.nvmlDeviceGetMemo...
MATS显存检测软件
针对以前的显卡,比较有用,但是最好是在DOS下来看结果
c#电脑显存检测
用c#如何将电脑的显存大小读取出来。请各位指教
directdraw读取显存内容
查过很多资料 还是不是很懂 rn能否有人肯详细解释下用directdraw读取显存内容的大概思路rnrn
显存地址是多少,Windows7!
我就想问句。在windows7下的0x800H用不了。那新的地址是多少呢? rn 希望知道的回句,本人新人,谢谢。
相关热词 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池 c#5.0 安装程序 c# 分页算法