CAFFE是当前一款炙手可热的深度学习推理,训练框架,很多模型是基于其框架环境创建及训练的,它对运行平台的要求非常灵活,它为不支持CUDA和GPU的PC提供了CPU版本的实现,这里我们就一CAFFE-CPU版为例,介绍其使用方法。
开发环境:
为了排除各种额外因素,比如各种已安装报的干扰,这里使用新安装的ubuntu18.04.6作为开发环境:
安装依赖
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler --no-install-recommends libboost-all-dev python-dev libatlas-base-dev libgflags-dev libgoogle-glog-dev liblmdb-dev python-opencv
为了提高安装速度,可以使用中科大的源,替换调原来/etc/apt/source.list内容,原文件别忘了作备份。
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
下载caffe源码
git clone git://github.com/BVLC/caffe.git
配置
拷贝一份模板配置文件为默认的配置文件,并且按照下图修改
cp Makefile.config.example Makefile.config
对Makefile修改如下:
编译
make
make test
make runtest
当出现最后的界面时,表示安装已经成功了。
lenet网路测试:
在TOP目录下,执行命令
./data/mnist/get_mnist.sh
下载的数据集为二进制格式,必须转换成caffe能识别的lmdb格式,方法是执行命令:
./examples/mnist/create_mnist.sh
example/mnist下出现mnist_train_lmdb和mnist_test_lmdb就对了
训练模型
执行训练命令
./examples/mnist/train_lenet.sh
却产生如下错误:
训练并非是用的CPU,这个和我们预期不符合,因为我们编译的时候选择了CPU_ONLY,后来经过调查,发现可以通过修改examples/mnist/lenet_solver.prototxt文件实现
将solver_mode: GPU修改为solver_mode: CPU
之后再次执行训练命令,训练10000次,得到的精度为0.9906
推理:
输入推理命令:
./build/tools/caffe.bin test -model examples/mnist/lenet_train_test.prototxt -weights examples/mnist/lenet_iter_10000.caffemodel
以上就是全部内容,希望有所帮助。