一些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. sqli-labs less 5-6

    sqli-labs less 5-6 从源代码中可以看到,运行返回结果正确的时候只返回you are in....,不会返回数据库当中的信息了,以前的union联合查询就不能用了,开始尝试盲注. 简单 ...

  2. Command Analyze failed with a nonzero exit code

    在运行RN项目的时候,报 Command Analyze failed with a nonzero exit code ,试着将build System 修改下

  3. E. Binary Numbers AND Sum

    链接 [http://codeforces.com/contest/1066/problem/E] 题意 给你长度分别为n,m的二进制串,当b>0时,对a,b,&运算,然后b右移一位,把 ...

  4. 作业20171130 final发布 成绩

    申诉 对成绩有疑问或不同意见的同学,请在群里[@杨贵福]. 申诉时间截止2017年12月16日 17:00. 更新 第一周和第二周成绩分别应占比20%和10%,计算时刚好反了.所以同学们的最终成绩有变 ...

  5. 电梯调度系统(界面由C图形库编绘)

    1.编程题目 电梯调度系统 2.结对编程组员 黄冠译,刘畅 3.编程语言 C语言图形库 4题目要求 编写人员:刘畅,黄冠译 代码如下: # include <stdio.h> # incl ...

  6. 21035218_Linux 实验三 程序破解

    20135218  姬梦馨 1:掌握NOP.JNE.JE.JMP.CMP的汇编指令的机器码. NOP:NOP指令即“空指令”.执行到NOP指令时,CPU什么也不做,仅仅当做一个指令执行过去并继续执行N ...

  7. SpringMVC-RESTRUL___CRUD知识点总结

    RESTful风格 <!-- 携带surveyId去后台 --><!-- RESTFUL风格:/xxx/23 --><!-- 接收方式:@PathVariable注解 - ...

  8. linux命令学习head和tail

    linux命令head和tail是一对:more和less是一对. head和tail https://www.2cto.com/os/201507/414753.html 一个头,一个尾. tail ...

  9. 记Git报错-refusing to merge unrelated histories

    记Git报错-refusing to merge unrelated histories   系统:win7 git版本: 2.16.2.windows.1 问题 1.本地初始化了git仓库,放了一些 ...

  10. Fidder 网络抓包调试工具

    可参考文章:[HTTP]Fiddler(二) - 使用Fiddler做抓包分析 fiddler2抓包工具使用图文教程