01、系统初始化
# 在vmware12安装ubuntu-16.04-desktop-amd64.iso
# 安装vmware-tools
# 调整分辨率,4k屏需要调整下桌面显示比例,否则字体太小
# 更新系统
sudo apt-get -y update && sudo apt-get -y upgrade
# 我的网速比较慢,夜里更新的,第二天又执行了一遍
sudo apt-get -y update && sudo apt-get -y upgrade
# 更新系统后,gcc -v 看一下,版本是5.4.0
# 安装vim git,个人经常使用vim,git操作源码必须工具
sudo apt-get install -y vim git
# 安装sougou拼音输入法,不是必须的
# 下载搜狗拼音输入法http://pinyin.sogou.com/linux/download.php?f=linux&bit=64
# 保存到 /home/username/Downloads/sogoupinyin_2.1.0.0082_amd64.deb
# 安装 sudo pkdg -i sogoupinyin_2.1.0.0082_amd64.deb
# 安装依赖 sudo apt-get install -f
# 配置搜狗输入法
# 制作系统快照,snapshot_install01
02、安装caffe CPU_ONLY依赖库
# 安装caffe必备组件,因为需要编译版本,所以安装的组件基本都是开发版本
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
# 这里并没有指定明确的boost版本
sudo apt-get install --no-install-recommends libboost-all-dev
# 基本线性代数子程序库(矩阵、向量计算)
sudo apt-get install libatlas-base-dev
# python开发库
sudo apt-get install python-dev
# gflags:参数解析;glog:google日志库;lmdb:key-value数据库
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
03、下载代码
git clone https://github.com/bvlc/caffe.git
cd caffe
git tag
git branch -a
git checkout -b mymaster master
git branch -vv
04、编译CPU_ONLY版本
04.01、编辑Makefile.config文件
cp Makefile.config.example Makefile.config
04.02、设置使用CPU模式
# 修改Makefile.config的CPU_ONLY配置项,取消CPU_ONLY前面的注释#符号
04.03、修改Makefile.config的hdf5头文件引用
# 修改Makefile.config
# 在INCLUDE_DIRS后面加上/usr/include/hdf5/serial/
# 否则,找不到hdf5.h
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial/
04.04、修改Makefile文件hdf5的库文件
# 修改Makefile文件的LIBRARIES中的hdf5_hl hdf5 ==> hdf5_serial_hl hdf5_serial
# LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5
# LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial
# 否则会找不到 hdf5_hl hdf5 库
# /usr/bin/ld: cannot find -lhdf5_hl
# /usr/bin/ld: cannot find -lhdf5
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial
04.05、编译
make
# 注意,这里不能make install
# 否则,会提示:make: *** No rule to make target 'install'. Stop.
# 在这里caffe命令行接口可用,python接口,matlab接口都不可用
05、使用mnist测试案例
./data/mnist/get_mnist.sh
tree ./data/mnist/
./examples/mnist/create_mnist.sh
***********************************************************
soft@ubuntu:~/caffe$ ls -l examples/mnist/mnist_train_lmdb/
total 60320
-rw-rw-r-- 1 soft soft 61763584 3月 22 12:33 data.mdb
-rw-rw-r-- 1 soft soft 8192 3月 22 12:33 lock.mdb
soft@ubuntu:~/caffe$ ls -l examples/mnist/mnist_test_lmdb/
total 10100
-rw-rw-r-- 1 soft soft 10338304 3月 22 12:33 data.mdb
-rw-rw-r-- 1 soft soft 8192 3月 22 12:33 lock.mdb
***********************************************************
# 注释掉 examples/mnist/lenet_solver.prototxt 中 solver_mode: GPU
# # solver_mode: GPU # 注释掉默认使用CPU
# 训练minist数据
./build/tools/caffe train --solver=examples/mnist/lenet_solver.prototxt
# 用训练好的模型对数据进行预测
./build/tools/caffe.bin test -model examples/mnist/lenet_train_test.prototxt -weights examples/mnist/lenet_iter_10000.caffemodel -iterations 100