caffe安装指南

来源:互联网 发布:linux权限表示 编辑:程序博客网 时间:2024/05/29 12:31

其实caffe上的安装已经介绍的很清楚,而且也不乏介绍caffe的文章,之所以写这篇是因为这是一个中文版本的,再就是我在实验室服务器安装时遇到了很多问题,我觉得后来人可能会遇到,所以贴出来


Linux平台下的Caffe安装指南

                                                                                          

1.   系统与权限

适用平台有Ubuntu 14.04, Ubuntu 12.04, OSX 10.9, and OS X 10.8,安装需要获取root权限

2.   依赖库

a)        CUDA 6.5(推荐), 6.0, 5.5, 5.0 和对应CUDA驱动——实验室服务器已安装CUDA6.0 :CUDA_DIR :=/usr/local/cuda-6.0

b)       BLAS(ATLAS, MKL, OpenBLAS) 括号里面的三选一——实验室已经安装好ATLAS :ATLAS := /usr/lib64/atlas

c)        OpenCV 这个下面会有对应的安装指令,无需配置路径

d)       Boost 这个下面会有对应的安装指令,无需配置路径

e)        glog, gflags, protobuf,leveldb, snappy, hdf5, lmdb 这些下面会有对应的安装指令,protobuf可能需要修改环境变量安装

f)        Python (Python 2.7,numpy(>=1.7)) boost.python,假如不需要可视化的功能,Python是不需要关心的,虽然makefile的配置文件中需要提供python的路径——实验室已经安装Python,numpy : PYTHON_INCLUDE := /usr/local/include/python2.7 \ /usr/local/lib/python2.7/site-packages/numpy/core/include/numpy

g)       MATLAB : 没用上,网上瞄了到一句用HDF5可以结合MATLAB

h)       cuDNN Caffe 是NVDIA公司专门提供的CNN计算模块,性能据说最好,但是看了下不是显著提高,此处不介绍如何使用。(需要向NVDIA申请,比较麻烦,不知道后面会不会开放)

 

不介绍只是用CPU计算的方法

3.   依赖库的安装

a)        跳过CUDA, BLAS, Python,MATLAB的配置需要注意的是,caffe源码中,Makefile.config.example中,需要将BLAS:= 改为ATLAS :=

b)       其他依赖库。实验室服务器的系统是CentOS,所以输入下面的指令来一次性安装protobuf, leveldb,snappy, opencv, boost, hdf5

 

sudo yum install protobuf-develleveldb-devel snappy-devel opencv-devel boost-devel hdf5-devel

 

但是需要注意的是,由于服务器在访问以上依赖库的下载包会报错(不知道是被墙了,还是因为平台资源的位置调整),出现错误信息如下

No package protobuf-devel available.

Error: Nothing to do

所以最好一个个安装,以观察哪些依赖库不能正确安装,目前可以直接安装好的依赖库有snappy, opencv, boost,需要用其他方法安装protobuf,leveldb, hdf5

protobuf: 下载protobuf,make编译,然后要修改环境变量,对应的编译错误关键字为proto-c

hdf5: 网上可以下到rpm安装包,比较简单无脑

leveldb:下载的地方很多,但是安装很愁人。安装参考http://blog.csdn.net/teethfairy/article/details/32089161其实就是拷贝include/leveldb到/usr/local/include 和对应的 .o 到/usr/local/bin

4.      编译

a)        修改Makefile.config.example文件中依赖库的路径,有CUDA, BLAS(要改名为ATLAS),Python

b)       执行cpMakefile.config.example Makefile.config

c)        执行make all& make test

 

编译过程中出现的问题:libstdc++.so.6报错的问题,我是重新安装了libstdc++.so.6库,按理说后面的人不会再遇到该问题了。

5.      测试MNIST数据库

MNIST数据库的Demo很有意思,通过教程的指令下载数据集,结果文件名成了乱码,还得去修改,至于修改成什么文件名,可以参考examples/mnist/create_mnist.sh脚本,然后在examples/mnist下会出现两个文件夹,里面分别放着训练集和测试集,然后运行sh train_mnist.sh就可以了





%----------------------------------------------------2014 11 06 更新分割线 ---------------------------------------------------------%

楼主发现我之前总结的实在是太概括了,很多细节都没说到,而且Glog与Gflag的安装遇到的问题也没有说,前几天又安装了一遍,问题更多,索性细枝末节全都记录下来了


第一次安装:

1. 解压caffe-master.zip到cnn文件夹

2. CUDA的位置 /usr/local/cuda-5.5

3. ATLAS的位置 /usr/lib64/atlas --- 会报错:lcblas 库找不到,修改Makefile.config最下面的LIBRARY_DIR 后面加上 /usr/lib64/atlas(这个问题是我实验室服务器的问题,正常来说大家不会遇到,或者改环境变量就可以了)

4. Python的位置/usr/include/python2.6

/usr/lib64/python2.6/site-packages/numpy/core/include/numpy/

5. 安装其他依赖库-执行管理员权限

       5.1protobuf http://blog.csdn.net/zaitianaoxiang/article/details/7639125

              ./configure 如果出现Permission Denied 就在命令前面加 Bash

并没有显示  Libraries have beeninstalled in: 

/usr/local/lib

Head files hava been installed in:

/usr/local/include/google/protobuf/ 

              但是/usr/local/lib下已经有protobuf的库了

       5.2leveldb http://blog.sina.com.cn/s/blog_560e310001015jfx.html

              照教程做会编译报错/usr/bin/ld: cannot find –lleveldb

              需要把对应的so文件拷贝过去 libleveldb.so 到/usr/local/lib 下

       5.3hdf5 rpm –ivh filename

       5.4snappy opencv boost已经安装好了

       5.5glog --- 这个貌似也是已经安装好了的

              wgethttps://google-glog.googlecode.com/files/glog-0.3.3.tar.gz

tar zxvf glog-0.3.3.tar.gz

cd glog-0.3.3

./configure

make && make install

       5.6lmdb 先不装试试---貌似已经安装好了---出现的问题是找不到/usr/local/man 需要手动创建man文件夹

       5.7gflag

              https://github.com/schuhschuh/gflags/releases下载安装包

              解压,打开相应文件夹

              打开INSTALL.txt 按照教程做

                     1.Extract source files.

2. Create build directory and change to it.

3. Run CMake to configure the build tree.

4. Build the software using selected build tool.

5. Test the built software.

6. Install the built files.

……(下面会出现ccmake .. 命令)

                     会出现CMake版本要求达不到的问题,换个低版本的gflag2.0以下的

              http://www.onlinedown.net/softdown/171915_2.htm  gflag 1.2版本的

              bash./configure

              make

              makeinstall

6. 运行 sh train_lenet.sh脚本后报错

error while loading shared libraries:libcudart.so.5.5: cannot open shared object file: No such file or directory

6.1 http://blog.csdn.net/shenchong721/article/details/21529295解决方法

6.2 修改/etc/ld.so.conf , 添加cuda的lib的路径,然后执行sudoldconfig 


有关glog的报错

https://github.com/BVLC/caffe/issues/333

       exportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

       Afteradding to ld.so.conf, run ldconfig with sudo. Then the runtime linker will beable to find.


7. 还要修改MNIST的文件名,乱码问题,还有后缀名 _ 与. 的问题

 

 

 

 

第二次安装-新用户

1.      修改Makefile.config.example一定要记得改LIBRARY_PATH

2.      然后就没什么问题了

 

常见问题:即便是root用户也会出现permission denied的错误,这时候在命令前面加bash

0 0
原创粉丝点击