Caffe安装过程中相关问题

一、caffe是主要是C/C++和Python编写的。首先,得需要将gcc,g++(gcc版本推荐4.4.7)安装好,通过yum安装就可以。


二、cuda的安装,如果机器上配置了NVIDIA系列GPU,则需要安装该驱动,推荐安装该驱动至7.0版本,推荐同时安装cuDNN。安装可以参考http://blog.csdn.NET/xuanyuansen/article/details/43152311,centos系统下类似。


三、caffe的layer开发以google的protobuf为格式,需要安装该依赖,推荐安装2.6.1版本,下载地址为https://github.com/google/protobuf/releases/download/v2.6.1/protobuf-2.6.1.tar.gz,按照README文件里的步骤安装即可。


四、python安装,caffe提供了python的接口,可以用python进行相关开发,而且可以在ipython-notebook里面画出网络结构,非常方便。为了使用这些功能,推荐在目标机器上编译安装python2.7.10,源码下载地址见python官网,为了多用户环境考虑,强烈建议安装目标用户自己的python,可以在自己用户的home下建立usr文件夹,解压源码后加如下配置命令:


./configure --enable-shared \

           --prefix=${HOME}/usr/local \

            LDFLAGS=“-Wl,—rpath=${HOME}/usr/local/lib”

make && make install


即需要python的lib文件可以被其他程序共享,rpath后面就是自已的路径。


安装好后需要配置目标用户下的bashrc文件,加入如下行:

PATH=/home/lianhua/usr/local/bin:$PATH

然后source bashrc文件,如果进入python版本正确则安装成功,否则检查路径重新编译。


python安装好后需要安装pip,在官网上下载get-pip.py执行即可,然后安装相应版本的protobuf,同时安装caffe的官方说明安装其他的依赖:

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


五、安装openblas

从openblas官网下下载安装安装包,安装README文件安装就好,make&&make install,可能需要sudo权限。


六、yum依赖安装

参加官方文档http://caffe.berkeleyvision.org/install_yum.html,需要安装上述所有依赖,首先需要安装和系统相应的最新的repository文件,然后执行sudo yum install epel-release,更新站点从而安装最最新的依赖。


七、OpenCV安装

前置需要安装较新版本的cmake,去官网下载安装即可。

opencv安装有两种方式:

1、下载源码包安装,请参考:

http://www.javieriparraguirre.net/installing-opencv-debian/(依赖的安装,centos类似)

http://www.jianshu.com/p/a41da779f763(opencv安装)

2、利用自动脚本安装:

地址:https://github.com/jayrambhia/Install-OpenCV



1.caffe依赖项部分

(1)、$sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler

lib有两种:

一种是静态库,比如C-Runtime库,这种lib中有函数的实现代码,一般用在静态连编上,它是将lib中的代码加入目标模块(EXE或者DLL)文件中,所以链接好了之后,lib文件就没有用了;

一种lib是和dll配合使用的,里面没有代码,代码在dll中,这种lib是用在静态调用dll上的,所以起的作用也是链接作用,链接完成了,lib也没用了。至于动态调用dll的话,根本用不上lib文件。 目标模块(exe或者dll)文件生成之后,就用不着lib文件了。

protobuf: 序列化工具

leveldb: 创建数据集用的

libopencv: 图像处理用的

hdf5:保存caffemodel用的

snappy: 数据压缩,和leveldb一起用

protobuf-compiler: libprotobuf-dev一起用

总而言之:以上就是caffe整个框架用到的第三库

(2)、$sudo apt-get install Python-numpy python-scipy python-matplotlib

三个模块:numpy , scipy , matplotlib

参考:https://www.zhihu.com/question/37180159

numpy:

来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多,本身是由C语言开发。这个是很基础的扩展,其余的扩展都是以此为基础。数据结构为ndarray,一般有三种方式来创建:
a.Python对象的转换;
b.通过类似工厂函数numpy内置函数生成:np.arange,np.linspace.....;
c.从硬盘读取,loadtxt.
scipy:
方便、易于使用、专为科学和工程设计的Python工具包.它包括统计,优化,整合,线性代数模块,傅里叶变换,信号和图像处理,常微分方程求解器等等。
基本可以代替Matlab,但是使用的话和数据处理的关系不大,数学系,或者工程系相对用的多一些。
Matplotlib:
Python中最著名的绘图系统,很多其他的绘图例如seaborn(针对pandas绘图而来)也是由其封装而成。这个绘图系统操作起来很复杂,但是matplotlib的复杂给其带来了很强的定制性。其具有面向对象的方式及Pyplot的经典高层封装。
需要掌握的是:散点图,折线图,条形图,直方图,饼状图,箱形图的绘制。
绘图的三大系统:pyplot,pylab(不推荐),面向对象
坐标轴的调整,添加文字注释,区域填充,及特殊图形patches的使用
2.禁止nouveau驱动

  (1)、$ sudo service lightdm stop


lightdm stop:关闭图像选项

service: 用于管理Linux系统中的各种服务的命令。其实service是位于系统中/usr/sbin/service的一个可执行的脚本,service的本质是一个可执行的脚本,它的功能“不过是/etc/init.d/ 目录下各种可执行脚本的一个为了方便调用而增加的一个包装而已。”


参考:http://blog.chinaunix.NET/uid-25909722-id-3023051.html


service的结果我们知道:

1. service的格式: service    脚本名      命令(stop/start/restart)     命令选项

2.  /etc/init.d/目录下的脚本至少要提供的两条命令:  stop、start

3. service 调用的命令的执行环境是可预测的,一般只有两到三个环境变量(LANG, TERM, PATH).

$sudo update-initramfs –u   #更新内核


$lspci | grep nouveau


lspci:显示系统中所有PCI总线设备或连接到该总线上的所有设备的工具。PCI是外围设备互联的简称,是普遍使用在桌面及更大型的计算机上的外设总线。它有三个主要目标:获得在计算机和外设之间传输数据时更好的性能;尽可能的平台无关;简化往系统中添加和删除外设的工作。


$sudo ldconfig


ldconfig是一个动态链接库管理命令,为了让动态链接库为系统所共享,还需运行动态链接库的管理命令,主要是在


默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态 链接库


(格式如前介绍,lib*.so*),进而创建出动态装入程序(ld.so)所需的连接和缓存文件.缓存文件默认为


/etc/ld.so.cache,此文件保存已排好序的动态链接库名字列表.


cuDNN安装


$sudo ln -sf libcudnn.so.5.1.5 libcudnn.so.5

$sudo ln -sf libcudnn.so.5 libcudnn.so

ln -sf 

-s = soft 软链接

-f = force 强制创建(使用前请备份之前存在文件)

拉取caffe源码

Git clone xxx.git  [指定目录]

参考:http://blog.csdn.net/techbirds_bao/article/details/9179853


八、caffe安装配置

关键在于正确配置Makefile.config文件,需要修改如下配置至相应的路径(参照配置文件的注释,疑惑的地方google即可):

1、CUDA_DIR

2、BLAS := open,BLAS_INCLUDE :=,BLAS_LIB :

3、PYTHON_INCLUDE := 注意此处需要添加python下numpy的路径

4、PYTHON_LIB :=

5、WITH_PYTHON_LAYER := 1

注意此处需要将python的hdf5安装路径添加到:INCLUDE_DIRS := $(PYTHON_INCLUDE)和LIBRARY_DIRS := $(PYTHON_LIB)


上述配置文件修改好后,回到caffe的根目录,执行make all -j4,注意此处进程不要过多,否则会出现诡异的错误;

make test -j4

make runtest -j4

至此caffe主程序编译完毕。

下面编译pycaffe,至执行

make pycaffe

make distribute

执行完后修改bashrc文件,添加

PYTHONPATH=${HOME}/caffe/distribute/python:$PYTHONPATH

LD_LIBRARY_PATH=${HOME}/caffe/build/lib:$LD_LIBRARY_PATH

使得python能够找到caffe的依赖。

进入python,import caffe,如果成功则说明一切ok,否则检查路径从头再来,甚至需要重新编译python。

http://blog.csdn.net/haoji007/article/details/52081273


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

女王の专属领地

您的鼓励是我最大的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值