关于caffe的编译——Ubuntu16.04
本次的编译环境是在虚拟机上的Ubuntu16.04上进行的。一、caffe的编译1)安装caffe的依赖文件由于虚拟机下的Ubuntu系统一般不包含GPU,故这次安装时为了在无GUP环境下运行caffe。 有GPU安装caffe与无GPU安装caffe的区别一般就两点:1.安装CUDA的时候不安装显卡驱动;2.最后安装好caffe,运行程序时,将相关配置文件改为CPU运行模
本次的编译环境是在虚拟机上的Ubuntu16.04上进行的。
一、caffe的编译
1)安装caffe的依赖文件
由于虚拟机下的Ubuntu系统一般不包含GPU,故这次安装时为了在无GUP环境下运行caffe。 有GPU安装caffe与无GPU安装caffe的区别一般就两点:
1.安装CUDA的时候不安装显卡驱动;
2.最后安装好caffe,运行程序时,将相关配置文件改为CPU运行模式,而不是GPU运行模式。
首先,先安装一个git,在这之前要进行依赖源的更新
$sudo apt-get update
然后进行git的安装(可以使用git --version对是否安装了git进行查看)
$sudo apt-get install git
接着进行依赖源的安装
$sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
$sudo apt-get install --no-install-recommends libboost-all-dev
$sudo apt-get install libatlas-base-dev
注意:这些安装都需要ubuntu联网的情况下才能安装成功
进行完这些安装之后
2)配置python
$sudo apt-get install python-dev
$sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
加载之后下载caffe源码
3)下载caffe源码
$ git clone https://github.com/bvlc/caffe.git
经过一段时间下载之后
4)修改Makefile.config
$ cd caffe //到caffe的根目录下
$ mv Makefile.config.example Makefile.config //修改Makefile文件
//用vi编辑器打开Makefile.config,修改其中的CPU_ONLY选项,本例子只用CPU模式,打开该选项(去掉“#”)表示caffe编译时仅支持CPU,不支持GPU
CPU_ONLY :=1
5)编译caffe
//接着进行caffe的编译,这个过程需要一定的时间
$ cd caffe
$ make pycaffe
$ make all
$ make test
$ make runtest
注意:编译时要把当前目录定位到caffe根目录下,否则会报错
make:***No rule to make target 'pycaffe'. Stop.
加载完这些命令之后没有报错就应该是编译完成了。
接下运行caffe的经典例子MNIST对其进行测试
编译的时候常见的问题:
a) 配置caffe的python环境时make pycaffe提示fatal error:numpy/arrayobject.h No such file or directory时解决办法:
sudo apt-get install python-numpy
b)make pycaffe 时出现fatal error:hdf5.h:没有那个文件或目录的解决办法:
首先在Makefile.config文件的第85行,添加/usr/include/hdf5/serial/ 到 INCLUDE_DIRS,也就是把下面第一行代码改为第二行代码。
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
INCLUDE_DIRS:=$(PYTHON_INCLUDE)/usr/local/include /usr/include/hdf5/serial/
然后在Makefile文件的第173行,把 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
二、MNIST的训练
MNIST(Mixed National Institute of Standards and Technology)是一个大型的手写体数字数据库,广泛的用于机器学习领域的训练和测试。
1) 下载MNIST的数据集
可以在Caffe源码框架下的data/mnist下用get_mnist.sh下载
$ cd caffe/data/mnist
$ ./get_mnist.sh
get_minst.sh是用来下载MNIST数据集和解压数据集的
t10k-labels-idx1-ubyte train-labels-idx1-ubyte
t10k-images-idx3-ubyte train-images-idx3-ubyte
2) 转换格式
下载到的原始数据集为二进制,需要转换为LEVELDB或LMDB才能被caffe识别
在caffe根目录下执行
./examples/mnist/create_mnist.sh
Creating lmdb
Done.
接下来就可以进行训练了
3) 训练选用的是MNIST数据集的LeNet模型,在examples/mnist下可以看到LeNet的相关信息
执行
$ ./examples/mnist/train_lenet.sh
即可开始训练,收敛过程很漫长。
注意:如果无法正常开始训练那么需要进入到examples/mnist/lenet_solver.prototxt 中
将最后一项solver_mode的GPU改为CPU 后
再运行 examples/mnist/train_lenet.sh 就可以正常训练了
更多推荐
所有评论(0)