ubuntu 16.04 python3环境下安装仅cpu版本的caffe
1.安装依赖文件。
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install --no-install-recommends libboost-all-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
sudo apt-get install libatlas-base-dev
2.git clone https://github.com/BVLC/caffe.git 下载caffe源码。(个人认为用迅雷下载更快)
3.修改Makefile文件。
cd ~/caffe-master
cp Makefile.config.example Makefile.config
sudo gedit Makefile.config
删除 `#CPU_ONLY := 1` 的#,开启仅使用cpu。
以下两行带有hdf5的为新增加的内容,解决无法找到HD5的错误。
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
使用python3还需做如下修改,将PYTHON_INCLUDE python2的注释掉,取消python3的注释。
#python2
#PYTHON_INCLUDE := /usr/include/python2.7 \
/usr/lib/python2.7/dist-packages/numpy/core/include
#python3
PYTHON_LIBRARIES := boost_python3 python3.5m
PYTHON_INCLUDE := /usr/include/python3.5m \
/usr/lib/python3/dist-packages/numpy/core/include
4.解决`/usr/bin/ld: cannot find -lboost_python3` 错误
sudo ln -s /usr/lib/x86_64-linux-gnu/libboost_python-py35.so /usr/lib/x86_64-linux-gnu/libboost_python3.so
编译caffe,make默认单核运算,-j2表示双核,可加快速度,根据自己实际情况修改。
make all -j2
make test -j2
make runtest -j2
5.安装caffe python3接口。
sudo apt install python3-pip #安装pip工具。
sudo apt install python3-numpy==1.13.3 #解决后面编译无法找到numpy错误。
sudo apt-get install gfortran #安装依赖文件
sudo pip3 install matplotlib#解决后面import caffe报错
cd ~/caffe-master
pip3 install -r python/requirements.txt
6.编译
make pycaffe -j2
7.打开python3终端测试:
cd ~/caffe-master/python/
python3
import caffe #不报错则安装成功.
报错:ImportError: No module named 'google'
pip3 install google-cloud
pip3 install google-cloud-vision
8.增加环境变量
sudo gedit ~/.bashrc
添加一行 export PYTHONPATH=~/caffe-master/python:$PYTHONPATH
9.使用MNIST数据集进行测试
(1)数据预处理
cd $CAFFE_ROOT
./data/mnist/get_mnist.sh
(2)重建LDB文件,就是处理二进制数据集为Caffe识别的数据集,以后所有的数据,包括jpe文件都要处理成这个格式,执行命令如下:
./examples/mnist/create_mnist.sh
(3)训练mnist
如果没有GPU,只有CPU的话,需要先修改examples/mnist目录下lenet_solver.prototxt文件,将solver_mode:GPU改为 solver_mode:CPU
cd examples/mnist
gedit lenet_solver.prototx
(4)训练模型
cd $CAFFE_ROOT
./examples/mnist/train_lenet.sh
然后就等~等~等~,毕竟cpu训练的慢,最终模型存储为二进制protobuf文件,是examples/mnist/lenet_iter_10000
参考:
https://blog.csdn.net/weixin_38125866/article/details/81951548
https://blog.csdn.net/u014696921/article/details/52156552
http://caffe.berkeleyvision.org/gathered/examples/mnist.html