记录在ubuntu15.04环境下配置caffe cpu模式的过程,无NVIDIA显卡,无cuda,安装过程不算麻烦,只要思路清晰,快速定位问题,1个小时左右完成。
在这里下载安装脚本,有linux各个发行版本的。,安装过程中要保证联网。进入ubuntu文件夹。
sudo sh opencv_latest.sh
.$version = "3.1.0"
$downloadfile = "OpenCV-3.1.0.zip"
$dlddir = "OpenCV"
然后sudo sh opencv_install.sh
.
因为安装脚本中这一句:
wget -O $downloadfile http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/$version/$downloadfile/download
是根据这两个变量去sourceforge下载对应版本的opencv的,可以去sourceforge看看再赋值.
opencv的安装过程如果不出错,是不需要人工干预的,安装脚本执行完成后,会提示==OpenCV 3.1.0 ready to be used==
安装完opencv之后可以参考这里的测试代码测试。
运行sudo apt-get install libboost-all-dev
,如果找不到包,更新一下源sudo apt-get update
再安装
MKL,OpenBLAS和ATLAS都提供了BLAS,这里使用ATLAS,运行sudo apt-get install libatlas-base-dev
主要是caffe数据读写的一些依赖:
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler protobuf-c-compiler liblmdb-dev
wget https://google-glog.googlecode.com/files/glog-0.3.3.tar.gz
tar zxvf glog-0.3.3.tar.gz
cd glog-0.3.3
sh ./configure
make && make install
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 && make install
lmdb是caffe数据集文件的存储格式。在这里下载zip
unzip lmdb_mdb.master.zip
cd lmdb_mdb.master/libraries/liblmdb
make && make install
git clone git://github.com/BVLC/caffe.git
cd caffe #进入caffe根目录
cp Makefile.config.example Makefile.config
vim Makefile.config
修改Makefile.config确保如下变量的值:
CPU_ONLY := 1 #去掉前面的注释
BLAS := atlas
OPENCV_VERSION := 3 #opencv版本号大于3则去掉前面的注释
MATLAB_DIR := /usr/local/MATLAB/R2015a #如果要使用matcaffe,去掉这行的注释,路径填matlab安装路径
#有时在编译链接时hdf5的路径找不到,直接加在这里:
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial
在caffe根目录运行
make all -j8 #可使用并行编译
make test
make runtest
把…caffe/examples/mnist/lenet_solver.prototxt中设置为==solver_mode: CPU==。
cd caffe #进入caffe根目录
./data/mnist/get_mnist.sh #获取mnist数据
./examples/mnist/create_mnist.sh #创建用于训练网络的lmdb文件
./examples/mnist/train_lenet.sh
在终端会输出训练过程中的迭代次数和loss变化,最终输出准确率,有99%+
运行make all pycaffe
在py文件中导入caffe模块,如果导入成功,就可以用pycaffe愉快地coding啦。
caffe_root = '/home/zhuyi/software/caffe' #填自己的caffe根目录
import sys
sys.path.append(caffe_root + '/python') #添加系统路径
import caffe
在caffe/examples中有ipynb的demo可以学习,在caffe/examples/pycaffe/layer中有python层的写法示范。
运行make all matcaffe
,保证gcc/g++版本为4.7.x(因为其他版本不能mex)
在matlab脚本中使用caffe前添加:
caffe_root = '/home/zhuyi/software/caffe' %填自己的caffe根目录
addpath([caffe_root '/matlab']); % 添加搜索路径
如果matlab中使用caffe出现错误信息:
/../sys/os/glnxa64/libstdc++.so.6: version
`GLIBCXX_3.4.20' not found (required by /usr/lib/x86_64-linux-gnu/libprotobuf.so.9)
原因在这里,需要在matlab启动前指定这个lib:
export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libstdc++.so.6