应导师要求,在实验机上安装 Caffe ,并使用 GPU 加速。尽管官方文档足够详细,但还是有很多细节问题没有讲清楚。网上很多资料也大多过时,参考难度大。故记下我安装过程中遇到的问题及相应的解决方法,以便宕机后再次安装。

安装环境

  • 系统:ubuntu 18.04

  • CPU:Intel i3-9100

  • GPU:AMD Radeon rx580 2080sp

Caffe 安装

官方文档

实验机使用 AMD 显卡,无法使用 caffe-cuda 版本。只能先安装 CPU 版本进行试验,后续文章解决使用 GPU 加速问题。

安装 ( Ubuntu 18.04 )

CPU-only version:

1
sudo apt install caffe-cpu

安装依赖:

1
sudo apt build-dep caffe-cpu	# dependencies for CPU-only version

开放源码安装的权限

“软件与更新”——勾选“源代码”——关闭

编译 ( Cmake )

下载 Caffe 源码

1
2
3
cd ~
git clone https://github.com/BVLC/caffe.git
cd caffe

编译

1
2
3
4
5
6
mkdir build
cd build
cmake ..
make all
make install
make runtest

error : 找不到 hdf5.hpp

查看源码,找到引用处,查看引用的相应位置的其他文件,将 hdf5.hpp 复制到该处。

1
2
locate insert_splits.hpp
locate hdf5.hpp

error : 找不到 hdf5.hpp ( Make 编译 )

可能解决方法:修改 Makefile.config 如下:

1
2
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

修改后未解决问题,最终采用 Cmake 编译。

Caffe 实例

采用官方文档实例:LeNet MNIST Turorial

准备数据集

1
2
3
cd caffe
./data/mnist/get_mnist.sh
./examples/mnist/create_mnist.sh

更改训练模式

编辑 caffe/examples/mnist/lenet_solver.prototxt

1
2
# solver mode: CPU or GPU
solver_mode: CPU

训练和测试模型

1
2
cd caffe
./examples/mnist/train_lenet.sh

本机10分钟后,训练完成,准确性 98.97% 。

1
2
3
4
5
6
I1203 solver.cpp:84] Testing net
I1203 solver.cpp:111] Test score #0: 0.9897
I1203 solver.cpp:111] Test score #1: 0.0324599
I1203 solver.cpp:126] Snapshotting to lenet_iter_10000
I1203 solver.cpp:133] Snapshotting solver state to lenet_iter_10000.solverstate
I1203 solver.cpp:78] Optimization Done.