VMware Ubuntu17.04(64位)下安装CPU版本的Caffe
1.VMware配置Ubuntu17.04(64位)
这里不再详细说明,但是我踩过一个坑:硬盘大小尽量大一点,要不然就会像我一样,后边配到一半没空间了,就gg了。
2.准备工作
首先安装必要的环境:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential
sudo apt-get install linux-headers-`uname -r`
然后下载cuda7.5:
sudo apt-get install curl
cd Downloads/
curl -O "http://developer.download.nvidia.com/compute/cuda/7.5/Prod/local_installers/cuda_7.5.18_linux.run"
安装必要的依赖库:
sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev protobuf-compiler gfortran libjpeg62 libfreeimage-dev libatlas-base-dev git python-dev python-pip libgoogle-glog-dev libbz2-dev libxml2-dev libxslt-dev libffi-dev libssl-dev libgflags-dev liblmdb-dev python-yaml
sudo easy_install pillow
下载Caffe并安装Python依赖库
cd ~
git clone https://github.com/BVLC/caffe.git
cd caffe
cat python/requirements.txt | xargs -L 1 sudo pip install
增加符号链接
sudo ln -s /usr/include/python2.7/ /usr/local/include/python2.7
sudo ln -s /usr/local/lib/python2.7/dist-packages/numpy/core/include/numpy/ /usr/local/include/python2.7/numpy
然后修改Makefile.config
cp Makefile.config.example Makefile.config
用gedit打开Makefile.config(或者直接用vim在终端中打开修改也可以)
1)去掉 # CPU_ONLY: = 1 的注释
2)在PYTHON_INCLUDE下, 把
/usr/lib/python2.7/dist-packages/numpy/core/include
替换成
/usr/local/lib/python2.7/dist-packages/numpy/core/include
还有一个hdf5的坑,找到INCLUDE_DIRS,改成下面这样:
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 /usr/lib/x86_64-linux-gnu/hdf5/serial
3.编译Caffe
make pycaffe
make all
make test
不出错即可
4.测试
这里我们测试一下CPU下的caffe能否正常运行即可:
首先为方便使用,我们将PYTHONPATH写入.bashrc中:
echo 'export PYTHONPATH=/home/你的用户名/caffe/python' >> ~/.bashrc
source ~/.bashrc
然后在终端中输入:python和import caffe
一切正常,说明成功。
下面测试一下mnist数据集:
cd ~/caffe
./data/mnist/get_mnist.sh
./examples/mnist/create_mnist.sh
然后编辑examples/mnist文件夹下的lenet_solver.prototxt文件,将solver_mode模式从GPU改为CPU
./examples/mnist/train_lenet.sh
等待。。。得到结果。
更多教程,资源,解析,请关注微信公众号:paper大讲堂(paperclassroom)