caffe运行时常见错误

这篇文章记录了我运行python时遇到的错误,以及我的解决方法,可能不够全面,欢迎大家一起讨论,补充 

 

1.  import caffe 报错:No module named caffe 

原因:没有添加caffe/python目录到bash shell中 ,或者是添加了没有source

解决:在~/.bashrc文件中添加export PYTHONPATH="/home/caffe-master/python:$PYTHONPATH",执行命令source ~/.bashrc

备注:export PYTHONPATH="/home/caffe-master/python:$PYTHONPATH" 里:

“export PYTHONPATH=” 和 “:$PYTHONPATH”是固定不变的,/home/caffe-master/python是变量,需要根据自己机器中caffe/python的路径设置

 

2.  import caffe 报错:No module named _caffe

原因:caffe每次重新编译后都需要编译pycaffe

解决:make pycaffe

 

3.  ./build/tools/caffe: No such file or directory

原因:路径错误,需要输入正确的相对路径或者绝对路径

解决:网上找的资料,运行caffe的代码都是 ./build/tools/caffe train -solver solver.prototxt(盲写的,不知道记忆是否准确),但是想要正确运行,首先要搞清楚这几个参数的含义:

./build/tools/caffe:第一个参数是Caffe框架的主要框架,由tools/caffe.cpp文件编译而来。默认的位置在caffe-master下,即/home/caffe-master/build/tools,但是我运行时的路径是 home/caffe-master/models/CCCC,所以我第一个参数应该是../../build/tools/caffe 。(写的比较详细,适合和我一样第一次运行caffe的小白。)

train/test:第二个参数,表示训练网络或测试网络

solver:第三个参数,表明使用了哪个solver.prototxt文件,solver.prototxt里定义了使用哪个网络模型。和第一个参数一样,需要写对路径

 

4.  img.txt图像列表中图像路径和图像标签之间的空格只能有一个,训练集lmdb文件的标签要从零开始

描述:我的caffe训练和测试数据是自己整理的,所以踩了好多好多的坑

img.txt文件每行的格式都是:img_path+一个空格+标签,我以为caffe会更加智能一些,比如自动split字符串,所以我中间加了四个空格,结果我想多了 果然报错

这俩错误都忘了截图记录,所以不记得错误原因是什么了,不过错误都落在我处理数据有疑问的范围,这是唯一值得欣慰的地方了

 

5.  Opened lmdb /data/xueru/wiki_data/wikipedia_dataset/mylmdb_temp

terminate called after throwing an instance of 'std::bad_alloc'

what():  std::bad_alloc

caffe运行时常见错误

反正看问题描述,就是lmdb文件报错了

原因一:lmdb没有写入,lmdb为空

import lmdb

env = lmdb.open('lmdb_path')  #打开出错的lmdb文件

txn = env.begin()

print txn.stat()['entries']  #输出lmdb样本个数

解决:txn.put() 之后要统一 txn.commit(),再 env.close()

原因二:在其他博客看到可能是通道数量问题(channel)

总之就是lmdb出错了 要仔细排查

 

6.  Check failed: width <= img_width (224 vs. 168)

caffe运行时常见错误

原因:训练样本的图像尺寸太小,在池化层pool5的时候,输入图像的尺寸已经小于核的大小了,pooling之后,下一步输入就变成了0x0,因此会报错。

解决:在caffe的输入层设置宽度和高度即可(new_height和new_width)。

image_data_param {

    source: "ImageNet List Path"

    batch_size: 64

    shuffle: true

    new_height: 256   #设置图像高度

    new_width: 256    #设置图像宽度

}

 

7.  Check failed: FLAGS_model.size() > 0 (0 vs. 0) Need a model definition to score.

应该是caffe测试code出错了

解决一:把caffe运行代码中 train 改为 test

解决二:执行的脚本中多空格(看网上好多人这么说,搬运过来)

感觉这个错误就是运行caffe的代码有误(如果我猜错了,请告诉我( ̄▽ ̄)~*)

 

8.  Unknown bottom blob 'data' (layer 'data/bn', bottom index 0)

不记得了

 

9.  Check failed: mdb_status == 0 (2 vs. 0) No such file or directory

原因一:.prototxt文件里的路径错误,检查路径

原因二:权限问题,执行命令时加sudo(这个也是从网上搬运过来的)

 

生命不止,bug不休,未完待续。。。。

上一篇:Openpose 编译记录


下一篇:Ubuntu16.04不用管理员权限安装caffe依赖(上)