[caffe]linux下安装caffe(无cuda)以及python接口
昨天在mac上折腾了一天都没有安装成功,晚上在mac上装了一个ParallelDesktop虚拟机,然后装了linux,十分钟就安装好了,我也是醉了=。=
主要过程稍微记录一下:
1.安装BLAS
sudo apt-get install libatlas-base-dev
2.安装依赖项
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev protobuf-compiler liblmdb-dev
3.安装glog
这个要FQ,我放在我的百度云上了。
tar zxvf glog-0.3.3.tar.gz cd glog-0.3.3 ./configure make sudo make install
4.安装gflags
wget https://github.com/schuhschuh/gflags/archive/master.zip unzip master.zip cd gflags-master mkdir build && cd build export CXXFLAGS="-fPIC" && cmake .. && make VERBOSE=1 make sudo make install
这一步需要cmake,如果没有安装可以用 sudo apt-get install cmake 安装。
5.安装lmdb
git clone https://gitorious.org/mdb/mdb.git
cd mdb/libraries/liblmdb
make
sudo make install
如果没有安装git,也要用 sudo apt-get install git 来安装。
注:如果可以FQ,只用下面一句就可以安装gflags,glog和lmdb了,省了3,4,5这三步。
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler
6.下载Caffe
git clone git://github.com/BVLC/caffe.git
7.安装Caffe
cd caffe
cp Makefile.config.example Makefile.config
因为这里没有gpu,所以需要设置Makefile.config文件中的CPU_ONLY:= 1,把这句的注释去掉就可以了。
然后编译
make all make test make runtest
安装好以后我们就可以试着在mnist上跑一下lenet了。
1.首先获取mnist数据
cd caffe ./data/mnist/get_mnist.sh
2.然后创建lenet
./examples/mnist/create_mnist.sh
注意一定要在caffe的根目录下运行以下命令,否则会报“ build/examples/mnist/convert_mnist_data.bin: not found”的错误,参见这里。
3.训练cnn
没有gpu的话要记得把caffe/examples/mnist/lenet_solver.prototxt中的solver_mode设置成solver_mode: CPU。然后在根目录下执行:
./examples/mnist/train_lenet.sh
准确率可以达到0.9912
因为caffe的tutorial上有很大一部分是python的,所以后来又安装了一下python的接口。
1.首先安装python
2.安装pip
sudo apt-get install python-pip python-dev build-essential
3.运行以下代码安装必要的依赖项:
sudo pip install -r ./python/requirements.txt
4.这里我运行了make clean以及其他编译的caffe的命令,重新编译了一次caffe,但我不确定是不是必须的。
5.在caffe的根目录下运行:
make pycaffe
这里遇到了一个问题:
virtual memory exhausted: Cannot allocate memory make: *** [python/caffe/_caffe.so] Error 1
按照这里的方法增加linux虚拟机的内存就可以解决了。
6.把caffe/python的路径加到python路径中:
运行python进入python shell,然后运行下列命令:
import sys sys.path.append("path/to/caffe/python/")
exit()
7. 这时候再次进入python shell,运行import caffe就没有报错了。
参考
[1]http://blog.csdn.net/fengbingchun/article/details/45535741