安装caffe过程中出现的问题及解决方案

以下问题是我个人在装caffe过程中出现的问题,各种搜各种翻译才搞好了,感谢网上的各路大神。希望你们能顺利,不要走太多弯路,比心

1:在Ubuntu环境下,打开python解释程序,输入import caffe时:出现以下错误

>>>import caffe

   Traceback (most recent call last):

    File "", line 1, in

   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文件的路基不对,检查





你可能感兴趣的:(caffe路漫漫)