以下问题是我个人在装caffe过程中出现的问题,各种搜各种翻译才搞好了,感谢网上的各路大神。希望你们能顺利,不要走太多弯路,比心
1:在Ubuntu环境下,打开python解释程序,输入import caffe时:出现以下错误
>>>import caffe
Traceback (most recent call last):
File "
ImportError: No module named caffe
基本思路是把caffe中的python导入到解释器中
解决方法:在终中输入:
export PYTHONPATH=~/caffe-master/python #caffe的路径下面的python
则该终端起作用,关掉终端后或重新打开一终端,则失效。
放到配置文件中,可以永久有效果,命令操作如下:
A.把环境变量路径放到 ~/.bashrc文件中
sudo echo export PYTHONPATH="~/caffe-master/python" >> ~/.bashrc
B.使环境变量生效
source ~/.bashrc (想删除环境变量可以sudo gedit ~/ .bashrc)
2:caffe装matlab接口报错:
Makefile:518: recipe for target 'matlab/+caffe/private/caffe_.mexa64' failed
make: *** [matlab/+caffe/private/caffe_.mexa64] Error 255
这和和gcc版本没关系,只是个warnnig(.ubuntu14 4.8 matalb2014 4.7)
在Makefile里面,大约第410行那一句话CXXFLAGS += -MMD -MP下面添加CXXFLAGS += -std=c++11,最后是这样
CXXFLAGS += -MMD -MP
CXXFLAGS += -std=c++11
然后在caffe根目录下make clean,make all
3:caffe make runtest 报错
error while loading shared libraries: libcudart.so.8.0: cannot open shared object file: No such file or directory
32-bit: sudo
ldconfig /usr/local/cuda/lib
64-bit: sudo
ldconfig /usr/local/cuda/lib64
4:训练mnist
/create_mnist.sh: 16: ./create_mnist.sh: build/examples/mnist/convert_mnist_data.bin: not found
原因1:可能是下载了caffe也解压了,但是没有make生成build文件夹。要make all;make test;make runtest
原因2:要在caffe根目录下执行,不能进入子目录去执行,因为create_mnist.sh中默认的路径是根目录。可以回到根目录执行或者修改create_mnist.sh内的路径。
5:训练cifar10
yan@yan:~$ cd caffe-master/examples/cifar10
yan@yan:~/caffe-master/examples/cifar10$ ./create_cifar10.sh
Creating lmdb...
./create_cifar10.sh: 13: ./create_cifar10.sh: ./build/examples/cifar10/convert_cifar_data.bin: not found
提示没有找到相关文件,其实它提示的文件都在计算机中.
由于create_cifar10.sh 文件只在根目录下运行,所以如果先将位置定位到create_cifar10 所在文件夹处,再运行 create_cifar10 是会报错误的。
所以如下执行create_cifar10.sh文件。运行后将会在examples中出现数据集./cifar10_xxx_lmdb和数据集图像均值./mean.binaryproto
yan@yan:~$ cd caffe-master
yan@yan:~/caffe-master$ ./examples/cifar10/create_cifar10.sh
当我们写好参数设置的文件 cifar10_quick_solver.prototxt 和定义的文件 cifar10_quick_train.prototxt 和 cifar10_quick_test.prototxt 后,运行 train_quick.sh 或者在
终端输入下面的命令:
cd $CAFFE_ROOT/examples/cifar10
./train_quick.sh
这是同样的道理,会报错。
所以应该这样执行:
yan@yan: cd caffe-master/
yan@yan:~/caffe-master$ ./examples/cifar10/train_quick.sh
6:使用CAFFE的c++代码提取图像特征
cd $CAFFE_ROOT
scripts/download_model_binary.py models/bvlc_reference_caffenet
下载bvlc_reference_caffenet.caffemodel模型文件到models/bvlc_reference_caffenet文件夹
Traceback (most recent call last):
File "./scripts/download_model_binary.py", line 5, in
import yaml
ImportError: No module named yaml
解决:sudo apt-get install python-yaml
训练模型时
I0519 11:35:05.566699 12871 layer_factory.hpp:77] Creating layer mnist
I0519 11:35:05.567157 12871 net.cpp:91] Creating Layer mnist
I0519 11:35:05.567164 12871 net.cpp:399] mnist -> data
I0519 11:35:05.567180 12871 net.cpp:399] mnist -> label
I0519 11:35:05.567198 12878 common.cpp:111] caffe init.
I0519 11:35:05.567261 12878 common.cpp:124] init descr
I0519 11:35:05.567718 12878 common.cpp:133] caffe finish
F0519 11:35:05.567751 12878 db_lmdb.hpp:14] Check failed: mdb_status == 0 (2 vs. 0) No such file or directory
*** Check failure stack trace: ***
@ 0x7f3048caedbd google::LogMessage::Fail()
@ 0x7f3048cb0c5d google::LogMessage::SendToLog()
@ 0x7f3048cae9ac google::LogMessage::Flush()
@ 0x7f3048cb157e google::LogMessageFatal::~LogMessageFatal()
@ 0x7f304930c0be caffe::db::LMDB::Open()
@ 0x7f30492e73f4 caffe::DataReader::Body::InternalThreadEntry()
@ 0x7f30492d2c00 caffe::InternalThread::entry()
@ 0x7f303cb63a4a (unknown)
@ 0x7f303c058184 start_thread
@ 0x7f304809abed (unknown)
Aborted (core dumped)
出现这种情况有两种可能,一种是数据损坏,另一种是lmdb网络链接异常,都导致训练网络找不到输入数据。问题都不大,你在http://caffe.berkeleyvision.org/gathered/examples/mnist.html,官网上重新来一遍,他上面的教程说的很明白。
我当前遇到的情况是训练的数据没有准备好。
以mnist的为例,以下命令都在CAFFE根目录下运行:
1.准备数据
./data/mnist/get_mnist.sh
./examples/mnist/create_mnist.sh
2.训练模型:
./examples/mnist/train_lenet.sh
prototxt中lmdb文件的路基不对,检查