caffe+Ubuntu64bit 环境配置说明(无CUDA,caffe在CPU下运行)

来源:互联网 发布:c数据库入门经典 pdf 编辑:程序博客网 时间:2024/05/05 02:25

1.安装build-essentials
安装开发所需要的一些基本包

sudo apt-get install build-essential

如果出现essential包不可用的情况,可以执行下列命令

sudo apt-get update

2. 安装ATLAS for Ubuntu

执行命令:

sudo apt-get install libatlas-base-dev

注:ATLAS, MKL,或OpenBLAS都可以,我这里选择安装ATLAS

3. 安装OpenCV

这个尽量不要手动安装, Github上有人已经写好了完整的安装脚本:https://github.com/jayrambhia/Install-OpenCV
下载该脚本,解压”.zip”文件,解压命令:

unzip /home/liuxiabing/下载/Install-OpenCV-master.zip

解压后进入Ubuntu/2.4 目录, 给所有shell脚本加上可执行权限:

chmod +x *.sh

然后安装最新版本 (当前为2.4.9):

sudo ./opencv2_4_9.sh

4. 安装其他依赖项
Ubuntu14.04用户执行(本人当时用的是15)

sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler

使用其它系统的可以参考官网介绍。

5. 编译Caffe
完成了上述环境的配置,就可以编译Caffe了!
下载caffe安装包,下载地址:https://github.com/BVLC/caffe
解压该压缩包,解压缩命令:

unzip /home/liuxiabing/下载/caffe-master.zip

注:如果解压位置出错了,可以使用以下命令删除该目录及所有的子目录:

sudo rm -rf caffe-master

进入caffe-master文件夹的python目录,执行如下命令:

for req in $(cat requirements.txt); do pip install $req; done 

下载安装所需依赖包。

接下来,进入caffe根目录, 首先复制一份Makefile.config,命令:

cp Makefile.config.example Makefile.config

然后修改里面的内容,主要需要修改的参数包括:

CPU_ONLY 是否只使用CPU模式,由于我没有NVIDIA的显卡,就没有安装CUDA,因此需要打开这个选项。其余的一些配置可以根据需要修改:BLAS (使用intel mkl还是OpenBLAS)MATLAB_DIR 如果需要使用MATLAB wrapper的同学需要指定matlab的安装路径, 如我的路径为 /usr/local/MATLAB/R2013b (注意该目录下需要包含bin文件夹,bin文件夹里应该包含mex二进制程序)DEBUG 是否使用debug模式,打开此选项则可以在eclipse或者NSight中debug程序完成上述设置后,开始编译:  
 make all -j4  make test  make runtest

注意:-j4 是指使用几个线程来同时编译,可以加快速度,j后面的数字可以根据CPU core的个数来决定,如果CPU是4核的,则参数为-j4,也可以不添加这个参数,直接使用“make all”,这样速度可能会慢一点儿。

6.使用MNIST数据集进行测试
Caffe默认情况会安装在CAFFEROOT home/username/caffe-master,所以下面的工作,
默认已经切换到了该工作目录。下面的工作主要是测试Caffe是否工作正常,不做详细评估。具体设置请参考官网:
http://caffe.berkeleyvision.org/gathered/examples/mnist.html
(1)数据预处理
可以用下载好的数据集,也可以重新下载,直接下载的具体操作如下:

cd data/mnist sudo sh ./get_mnist.sh

(2)重建LDB文件
就是处理二进制数据集为Caffe识别的数据集,以后所有的数据,包括jpe文件都要处理成这个格式,执行命令如下

sudo sh ./examples/mnist/create_mnist.sh

生成mnist-train-leveldb/ 和 mnist-test-leveldb/文件夹,这里包含了LDB格式的数据集
注:新版caffe都需要从根目录上执行,如果使用下列命令执行:

# cd examples/mnist # sudo sh ./create_mnist.sh
 可能会遇到这个错误:./create_mnist.sh: 16: ./create_mnist.sh: build/examples/mnist/convert_mnist_data.bin: not found

(3)训练mnist
如果没有GPU,只有CPU的话,需要先修改examples/mnist目录下lenet_solver.prototxt文件,将solver_mode:GPU改为 solver_mode:CPU,修改后结果如下所示:

# solver mode: CPU or GPU solver_mode: CPU

修改时可以使用vi编辑命令,如果是只读文件,不能编辑,可以用sudo命令,比如:

sudo vi lenet_solver.prototxt

先进入命令模式,使用a进入编辑模式,修改完之后,使用esc退出编辑模式,进入末行模式,再使用“:wq”保存修改并退出(“:q!”为退出但不保存修改)
修改完成后,再执行下面的命令进行训练:

$ cd examples/mnist $ sudo sh ./train_lenet.sh

最终训练完的模型存储为一个二进制的protobuf文件,至此,Caffe安装的所有步骤完结。

几个常见的问题解决办法
1. Permission denied

提示权限不够,命令前面需要加上:sudo

2.fatal error: hdf5.h: 没有那个文件或目录

这个是路径不对,配置一些引用文件(增加部分主要是解决新版本下,HDF5的路径问题)

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/lib/x86_64-linux-gnu/hdf5/serial/includeLIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial

3.修改文本的方法(vim编辑器的使用)

  1. 通过如下命令打开文本文件
sudo vi Makefile.config
  1. vi编辑器的集中快捷键
i   第一次进入编辑器是处于不可编译状态,需要点击i字符进入编辑(插入)状态,相反,按Esc退出编辑状态:  退出编辑状态后,按:进入文本保存是否保存选项w  写  q 停止推出 !强制一般连用:wq!   :q!   :q/abc   在文本中查找abc字符(区分大小写)ctrl + z  退出linux命令行的 

4./usr/bin/ld: 找不到 -lopencv_imgcodecs
这里的原因是当时本地的opencv版本是2,而在文件Makefile.config中版本opencv = 3(不匹配)
5.Caffe默认的训练是在GPU上的,但是如果想改为CPU上,只需要在lenet_solver.prototxt中修改一行:

# solver mode: CPU or GPUsolver_mode: CPU

参考文章:
caffe+Ubuntu14.0.4 64bit 环境配置说明(无CUDA,caffe在CPU下运行)
Caffe搭建:Ubuntu14.04 + CUDA7.0 + opencv3.0 + Matlab2014A

0 0