一些caffe错误

  1. 训练时很快梯度爆炸,loss猛增至nan
    如果找不到数据上的原因的话,可以怀疑caffe框架有问题,换用其它版本试试。比如我遇到的问题是在训练时使用了Accuracy层,而该层的实现代码在某次更新中GPU代码存在bug,复用了其它层的变量导致对loss的计算产生了影响。训练时去掉accuracy层就好了,测试时使用该层不受影响,或者使用这里的补丁https://github.com/BVLC/caffe/pull/5987 。
  2. Check failed: error == cudaSuccess (9 vs. 0) invalid configuration argument
    可能原因是GPU硬件配置低,线程数不够,超过了它能承受的范围。caffe不支持小于2.0计算能力的nvidia GPU,尝试调小batch size或者降低图片缩放的大小,使用较小的网络如ZF net或者VGG_CNN_M_1024试试。
    如果硬件没问题那么如果Faster R-CNN的smooth L1 loss层报错,RPN未产生候选区域,导致CAFFE_GET_BLOCKS分配到的block数为0,将配置文件中的bg_thresh_lo设置为0,可以增加roi的数量,然而有时候仍然不行。
    将CAFFE_GET_BLOCKS(count)替换为std::max(1, CAFFE_GET_BLOCKS(count))也可以解决一部分这个问题。
    如果问题仍未解决,请仔细检查训练数据,最终发现数据中某个样本是负样本(Faster R-CNN的该标签中没有目标标记),导致计算smooth l1损失时ground truth为0,因此导致了cuda的block数为0.
    再来看Invalid Configuration Argument的一般原因:

    Invalid Configuration Argument - This error means that the dimension of either the specified grid of blocks (dimGrid) , or number of threads in a block (dimBlock), is incorrect. In such a case, the dimension is either zero or the dimension is larger than it should be. This error will only occur if you dynamically determine the dimensions.

  3. 编译时报错:convert_imageset.cpp undefined reference to `caffe::ReadImageToDatum
    原因:之前安装caffe时在/usr/lib/libcaffe.so创建了符号链接,删除即可。
  4. 编译时报错:undefined reference to 'omp_set_num_threads'
    在Makefile或其include的Makefile.config中对gcc编译选项加入-fopenmp:
    CXXFLAGS += -fopenmp LDFLAGS += -lgomp
    注意不要加入到COMMON_FLAGS中,因为其被nvcc用到,而nvcc没有openmp选项。
  5. 在运行caffe的时候,如果出现如下报错
    free(): invalid pointer: 0x00000000020663b0
    可能是 glibc malloc/free 的问题, 可用TCMalloc库替代:
    # 下载tcmalloc库.so sudo apt install libtcmalloc-minimal4 # 可选方式二: 性能分析工具(全家桶): apt install google-perftools # 对于要执行的程序通过preload替换掉原malloc功能库 export LD_PRELOAD="/usr/lib/libtcmalloc_minimal.so.4"
    Google开源的TCMalloc,在C++小对象频繁创建销毁的处理上拥有非常大的优势。tcmalloc速度快,但是耗内存,不适合直接与caffe链接到一块, 从caffe的提交历史可以看到曾经加入了tcmalloc后来又删除了.
    在使用PyTorch或者Tensorflow等框架时也可能遇到这个问题.
    参考How To Use TCMalloc?TCMalloc : Thread-Caching Malloc
  6. caffe的python接口.
    caffe的python接口很容易因为C++代码的改动编译而出现运行时错误. 解决方法是删除python/caffe/下的caffe.so 或者重新编译整个工程.
    其它错误, 每次修改caffe的C++代码并编译caffe时make或cmake工具仅编译改动过的文件及依赖文件,可能会出现一些很奇怪的运行时错误. 这种情况下的首选尝试方法就是重新编译整个工程. (我遇到很多次这种情况了, 可能是Makefile写的不够完善)

caffe 错误的更多相关文章

  1. caffe错误

    一些caffe错误 训练时很快梯度爆炸,loss猛增至nan 如果找不到数据上的原因的话,可以怀疑caffe框架有问题,换用其它版本试试.比如我遇到的问题是在训练时使用了Accuracy层,而该层的实 ...

  2. 训练超参数, 出现 Cannot use GPU in CPU-only Caffe 错误?

    当我们用MNIST手写体数字数据库和LeNet CNN 模型训练超参数,运行 examples/mnist/train_lenet.sh是出现Cannot use GPU in CPU-only Ca ...

  3. caffe初试(一)happynear的caffe-windows版本的配置及遇到的问题

    之前已经配置过一次caffe环境了: Caffe初试(一)win7_64bit+VS2013+Opencv2.4.10+CUDA6.5配置Caffe环境 但其中也提到,编译时,用到了cuda6.5,但 ...

  4. caffe安装编译问题-ImportError: No module named caffe

    问题描述 ~/Downloads/caffe$ python Python (default, Dec , ::) [GCC ] on linux2 Type "help", &q ...

  5. caffe小问题汇总(持续更新)

    PS:所有问题均在caffe-windows下产生 1.为什么AlexNet中,InnerProduct_Layer(fc8)层的输出可以直接作为Accuracy_Layer层的输出? 答:首先,我们 ...

  6. caffe搭建--缺少 skimage-缺少 google.protobuf.internal.-caffe搭建--ipython--ubuntu16.04+ caffe+ ipython

    mkdir build && cd build cmake .. make pycaffe -j4 sudo vim /etc/profile---- export PYTHONPAT ...

  7. Caffe RPN:把RPN网络layer添加到caffe基础结构中

    在测试MIT Scene Parsing Benchmark (SceneParse150)使用FCN网络时候,遇到Caffe错误. 遇到错误:不可识别的网络层crop 网络层 CreatorRegi ...

  8. Ubuntu Anaconda3 环境下安装caffe

    安装Python环境 本人环境为Anaconda3 ,可参照 https://blog.csdn.net/ctwy291314/article/details/86571198 完成安装Python2 ...

  9. ubuntu14.04 cpu-ssd

    1. ssd-caffe部署 五年半前老笔记本,没有GPU(其实有,AMD的,不能装CUDA),之前装过CPU版的Caffe 新建一个目录,然后参考网上步骤 sudo git clone https: ...

随机推荐

  1. linux-IO重定向-文本流重定向

    输出重定向的追加和覆盖 标准输出就这两种: 覆盖和追加 >> 是重定向操作符 1 是 命令的文件描述符 重定向操作符合文件描述符之间不能存在空白符 否则1会被当做是文件被读取 将正确和错误 ...

  2. ACM-ICPC 2018 徐州赛区网络预赛 G. Trace-树状数组-区间修改,单点查询

    赛后和队友讨论了一波,感谢无敌的队友给我细心的讲题 先埋坑 #include<iostream> #include<string.h> #include<algorith ...

  3. 《Linux内核分析》第八周

    <Linux内核分析>第八周 PART ONE 知识点总结 一.进程切换的关键代码switch_to 1.进程调度与进程调度的时机 (1)进程分类: I/O型(执行块,频繁) CPU型(大 ...

  4. first time to use github

    first time to use github and feeling good. 学习软件工程,老师要求我们用这个软件管理自己的代码,网站是全英的,软件也简单易用,方便 https://githu ...

  5. JWT验证

    理解 JSON Web Token(JWT) 验证 JSON Web Token认证的操作指南 在本文中,我们将了解JSON Web Token的全部内容. 我们将从JWT的基本概念开始,然后查看其结 ...

  6. the confilict between validation and readonly in jquery

    How can I disable jquery validation on readonly fields? http://stackoverflow.com/questions/10803294/ ...

  7. Jmeter While Controller 使用${__jexl2(,)}

    1. String [] str ={"1","2","3"}; vars.putObject("strArray",s ...

  8. about use Vue of methods

    methods 处理事件 methods 在vue中处理一些逻辑方面的事情.vue事件监听的方式看上去有点违背分离的传统观念.而实际上vue中所有事件的处理方式和表达式都是严格绑定在当前的视图的vie ...

  9. [转帖]以Windows服务方式运行.NET Core程序

    以Windows服务方式运行.NET Core程序 原作者blog:https://www.cnblogs.com/guogangj/p/10093102.html 里面使用了NSSM 工具 但是自己 ...

  10. Delphi编程中动态菜单要点归纳

      一.创建菜单并添加项目 在设计程序时,有时需要动态创建菜单, 通常使用以下的语句: PopupMenu1 := TPopupMenu.Create(Self);  Item := TMenuIte ...