caffe [CPU ONLY] 2017-01-15
最简单的安装配置方式: 不用GPU加速,使用OPENCV2.4图像库, 这是根据官方教程(链接如下)简化而得到.
Ubuntu 16.04 or 15.10 Installation Guide
1. 软件源更新
刚刚安装好Ubuntu16.04的系统之后,第一步应该是更新软件源,有多种方式,这里使用的是直接编辑配置文件的方式.
# 01在修改source.list前,最好先备份一份 sudo cp /etc/apt/sources.list /etc/apt/sources.list.old # 02执行命令打开sources.list文件: # 可以用vim, gedit, kate, atom等工具打开 # sudo vim /etc/apt/sources.list sudo gedit /etc/apt/sources.list # 03写入新的软件源 # 这里推荐清华大学的Ubuntu镜像 # 北京交通大学的Ubuntu镜像只能给Ubuntu14.04及一下版本的使用 # 具体内容见后面 # 04开始更新 sudo apt-get update # 05不要进行系统升级!!! # 即,不要执行下面的命令 # sudo apt-get upgrade
清华大学Ubuntu16.04软件源
# deb cdrom:[Ubuntu 16.04 LTS _Xenial Xerus_ - Release amd64 (20160420.1)]/ xenial main restricted deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial universe deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates universe deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial multiverse deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates multiverse deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe ultiverse deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security universe deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security multiverse
2. 前置命令执行[安装各种包]
sudo apt-get update sudo apt-get install -y build-essential cmake git pkg-config sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libhdf5-serial-dev protobuf-compiler sudo apt-get install -y libatlas-base-dev sudo apt-get install -y --no-install-recommends libboost-all-dev sudo apt-get install -y libgflags-dev libgoogle-glog-dev liblmdb-dev # (Python general) sudo apt-get install -y python-pip # (Python 2.7 development files) sudo apt-get install -y python-dev sudo apt-get install -y python-numpy python-scipy # (OpenCV 2.4) sudo apt-get install -y libopencv-dev
这些命令做了什么
安装了编译工具cmake, git客户端, hdf5/lmdb,以及boost图像库
Python部分选择2.7版本,安装对应的numpy库, 是否安装成功可以通过如下方式测试[不报错则numpy库安装ok]:
OpenCV2.4通过上面的命令直接安装完成,省去了OPENCV3和OPENCV3.1编译和一步步配置安装的过程.
3. 下载/配置/编译 caffe
3源码下载/解压
项目地址: https://github.com/BVLC/caffe
选择直接下载,得到 caffe-master.zip
注:虽然可以通过git命令直接clone项目(git clone https://github.com/BVLC/caffe.git ),但是速度特别慢,只有4KB左右,建议直接下载
解压到~/bin 目录下
sudo make ~/bin cd ~/bin cp /PATH/TO/caffe-master ~/bin unzip caffe-master.zip rm -rf caffe-mater.zip
3安装caffe
进入caffe-master目录
cd ~/bin/caffe-master/ cp Makefile.config.example Makefile.config # 编辑配置文件 # 安装kate,用命令 # sudo apt-get install kate kate ./Makefile.config &
编辑配置文件
Makefile.config
# 01 因为只使用CPU # 不用GPU加速 # 所以 取消注释 # 默认是使用 GPU + CPU 运算 # CPU-only switch (uncomment to build without GPU support). # CPU_ONLY := 1 CPU_ONLY := 1 # 02 Python2.7 运行环境配置项 # 让 Makefile.config包含下面内容 # 不用修改 PYTHON_INCLUDE := /usr/include/python2.7 /usr/lib/python2.7/dist-packages/numpy/core/include # 取消注释 WITH_PYTHON_LAYER := 1 #下面两项,包含下面的内容就好 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 # OPENCV3还需要额外配置,OPENCV2.4不用
Makefile
kate Makefile.config
# 替换 NVCCFLAGS += -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS) # 如下 NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
在正式编译之前,可能还需要附加hdf5的设置:
find . -type f -exec sed -i -e 's^"hdf5.h"^"hdf5/serial/hdf5.h"^g' -e 's^"hdf5_hl.h"^"hdf5/serial/hdf5_hl.h"^g' '{}' ; cd /usr/lib/x86_64-linux-gnu sudo ln -s libhdf5_serial.so.10.1.0 libhdf5.so sudo ln -s libhdf5_serial_hl.so.10.0.2 libhdf5_hl.so
进入caffe-master/python目录
for req in $(cat requirements.txt); do pip install $req; done #上面代码执行如果出现什么问题,再尝试下面的的命令: for req in $(cat requirements.txt); do sudo -H pip install $req --upgrade; done
编译
make all make test make runtest make pycaffe -should be finished already, so you can omit this one make distribute
上面的命令都可以替换成如下形式:
make all # can become make all -j $(($(nproc) + 1))
4. MNIST实验
下面的操作都是在caffe-master目录下,切换工作目录
cd ~/bin/caffe-master
步骤一:数据预处理 [下载数据]
sh data/mnist/get_mnist.sh
步骤二:重建lmdb文件. Caffe支持多种数据格式输入网络,包括Image(.jpg, .png等),leveldb,lmdb,HDF5等,根据自己需要选择不同输入吧.
$ sh examples/mnist/create_mnist.sh
生成mnist-test-lmdb和 mnist-train-lmdb文件夹,这里包含了lmdb格式的数据集.
步骤三:训练mnist. [CPU Only需要修改配置文件]
sh examples/mnist/train_lenet.sh # 输出 "Optimization Done." # 成功,准确率达到99%
附:如何修改配置文件支持CPU ONLY
# CUP Only 修改配置文件 vim examples/mnist/lenet_solver.prototxt # 将配置文件末尾修改如下 # solver mode: CPU or GPU # solver_mode: GPU solver_mode: CPU
iiiiiiii