Ubuntu下安装Caffe(CPU Only)

来源:互联网 发布:淘宝网图书人性的弱点 编辑:程序博客网 时间:2024/05/16 10:02

1. 在安装Caffe(cpu only)之前需要安装一些依赖库,如下所示:


~$ sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler --no-install-recommends libboost-all-dev

接下来是安装BLAS:

~$ sudo apt-get install libatlas-base-dev

使用默认Python来建立pycaffe接口,需要安装:

~$  sudo apt-get install python-dev

还需要安装一些兼容性依赖库,如下:

~$ sudo apt-get install libgflags-dev  libgoogle-glog-dev  liblmdb-dev

2. 下载Caffe源码

采用git下载Caffe源码,git软件须已经安装,安装方法如下:

~$ sudo apt-get install git

~$ git clone https://github.com/BVLC/caffe.git

3. 编译Caffe

到Caffe文件夹中,有一个Makefile.config.example的文件,复制它并重命名成Makefile.config,然后修改该配置文件:

~$ sudo cp Makefile.config.example Makefile.config

~$ gedit Makefile.config

使用文本编辑器打开Makefile.config,因为这里没有配置GPU,所以去掉CPU_ONLY := 1前面的注释;
由于Ubuntu16.04文件结构的变化,#Whatever else you find you need goes here.处要改成下面这样:

# Whatever else you find you need goes here.  
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial  
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/i386-linux-gnu/hdf5/serial 

在此步中hdf5相关路径的设置很关键,一定要找到本机安装hdf5的路径,否则会出现有关hdf5的错误。

设置到这里开始编译:

$ make pycaffe

结果报错,错误和numpy相关,其解决方法为:

$ sudo apt-get install python-numpy

$ sudo make pycaffe -j16

接着编译:

make pycaffe
make all  
make test
make runtest 
4. 测试

测试Caffe的Python接口,切换到caffe/python文件目录下,记录下来当前路径,输入以下命令:

export PYTHONPATH=/path/to/caffe/python:$PYTHONPATH

进入python环境,输入:

import caffe

如果没有报错,证明安装成功,如下图所示:



上面的方法,一旦关闭终端或者打开新终端则失效,如果放到配置文件中,可以永久有效果,命令操作如下:

#A.把环境变量路径放到 ~/.bashrc文件中  
sudo echo export PYTHONPATH="~/caffe/python" >> ~/.bashrc  
#B.使环境变量生效  

source ~/.bashrc

至此,Caffe的安装完成,下面运行caffe自带的两个简单例子。

1. mnist实例

mnist数据训练样本为60000张,测试样本为10000张,每个样本为28*28大小的黑白图片,手写数字为0-9,因此分为10类。

在Caffe根目录下,下载mnist数据:

$ sudo sh data/mnist/get_mnist.sh

运行成功后,在 data/mnist/目录下有四个文件:

train-images-idx3-ubyte:  训练集样本 (9912422 bytes) 
train-labels-idx1-ubyte:  训练集对应标注 (28881 bytes) 
t10k-images-idx3-ubyte:   测试集图片 (1648877 bytes) 
t10k-labels-idx1-ubyte:   测试集对应标注 (4542 bytes)

这些数据不能在caffe中直接使用,需要转换成LMDB数据:

$ sudo sh examples/mnist/create_mnist.sh

如果想运行leveldb数据,请运行 examples/siamese/ 文件夹下面的程序。 examples/mnist/ 文件夹是运行lmdb数据
转换成功后,会在 examples/mnist/目录下,生成两个文件夹,分别是mnist_train_lmdb和mnist_test_lmdb,里面存放的data.mdb和lock.mdb,就是我们需要的运行数据。
接下来是修改配置文件,如果你有GPU且已经完全安装好,这一步可以省略,如果没有,则需要修改solver配置文件。
需要的配置文件有两个,一个是lenet_solver.prototxt,另一个是train_lenet.prototxt.
首先打开lenet_solver_prototxt:

$  sudo gedit examples/mnist/lenet_solver.prototxt

根据需要,可以对相关参数进行设置,如max_iter处设置最大迭代次数,以及决定最后一行solver_mode,是否要改成CPU,保存退出后,就可以运行这个例子了:

$ sudo time sh examples/mnist/train_lenet.sh

运行结果如下图所示:



2. cifar10实例

同mnist实例一样,运行以下命令:

$ sudo sh data/cifar10/get_cifar10.sh

$ sudo sh examples/cifar10/create_cifar10.sh

根据需要,可以打开prototxt文件对相关参数进行设置,如

$ gedit cifar10_quick_solver_lr1.prototxt

参数设置好后。保存退出,然后运行:

$ sudo time sh examples/cifar10/train_quick.sh

运行结果如下图所示:















参考资料:1. http://blog.csdn.net/muzilinxi90/article/details/53673184

                  2. http://www.linuxidc.com/Linux/2016-11/136774p9.htm

0 0