Caffe常见错误
在使用深度学习框架caffe,搭建网络训练过程中总会遇到这样或那样的问题,下面我将自己在学习过程中遇到的常见问题进行总结【会陆续更新】
- 错误一:cuda invalid address error
- 错误二:out of memory (2 vs. 0)
- 错误三:Check failed: error == cudaSuccess (74 vs. 0) misaligned address
1. cuda invalid address error
此类错误是kernel函数参数不允许传引用导致的。不用去检查网络结构了。换更高配置的显卡服务器即可。
2. out of memory (2 vs. 0)
出现该问题的原因是电脑内存不够,可能是GPU的运行内存使用过高;也可能是电脑的硬盘内存不够。
##解决办法:
(1)检查内存,硬盘内存不够的话就清理内存腾出空间来保存训练数据;
(2)硬盘内存足够的情况下查看GPU使用情况,终端输入nvidia-smi可查看;
GPU内存不多的话就减少网络的batchsize;
一般情况下我使用的是1080的显存有12G左右,训练30+层的网络,4848的块3倍的batchsize一般是64左右,2倍的batchsize一般是20-30,4倍的就更少了都在10左右,稍微大点就会提示内存不够,为了减少因为网络文件中的batchsize太小而导致不收敛的问题,可在solver文件中加大test_iter,从而增大实际的batchsize。 实际的batchsize=网络中的batchsizetest_iter,有时候不仅是训练batchsize太大会导致内存不够,实际训练batchsize=batchsizetest_iter太大也会导致该情况,减少batchsize即可,有时候为了避免训练的batchsize太小导致网络不收敛,在减小训练batchsize的时候可以适当增加solver文件中的test_iter。
###注:我试验过当网络中的batchsize设置非常小的时候(比如1、 2)即使增加test_iter网络收敛曲线仍是振荡的;batchsize 的正确选择是为了在内存效率和内存容量之间寻找最佳平衡,所以不是越大越好也不是越小越好,这个需要自己一点一点的试。。。尴尬,我常用的batchsize是32 48 64 128

图片来源超链接
3. Check failed: error == cudaSuccess (74 vs. 0) misaligned address
这个错误是caffe自带的bug引起的;
错误展示如下:

解决办法:
只需要在caffe的安装文件cudnn_conv_layer.cpp的文件下找到对应位置【看图在文件中查找附近的代码】做如下添加,即可解决问题。
size_t m=32;
max_workspace = (max_w

本文总结了在使用Caffe框架时遇到的典型错误,包括cuda invalid address、out of memory和misaligned address,并提供了相应的解决策略,如调整batchsize、检查GPU内存、重新编译Caffe等。
最低0.47元/天 解锁文章
1108

被折叠的 条评论
为什么被折叠?



