Ubuntu配置Caffeonspark教程

来源:互联网 发布:淘宝怎么分卖家买家 编辑:程序博客网 时间:2024/05/18 14:22

  后续说明:最近又在新的机子上装了一遍caffeonspark,发现我原来说的需要在caffe-public文件夹下再编译一遍caffe的步骤是多余的,因为编译caffeonspark的过程中自己会到caffe-public这个文件夹下再编译一次。上次之所以以为得手动编译一次,可能是因为它自动编译时失败了,而手动编译之后又重新work了。但是还是要注意,如果配置caffe时进行了自定义的改动,也要在caffe-public文件夹下进行相应的改动(特别是opencv3.0)。汗。。。所以如果编译过程中出错的话可以根据提示去Makefile文件下看看执行的命令,有助于编译的进行。

        今年2月,Yahoo 对外发布了 CaffeOnSpark 人工智能的源代码,它被设计成为一个Spark深度学习包。最近因为项目需要,我开始尝试在自己的电脑上配置caffeonspark,打算在单机上配置好后再分布到集群上。然而根据雅虎在github网站上关于配置caffeonspark的教程Running CaffeOnSpark Locally,我走了很多弯路。因为那个网站上的教程说的比较简略,特别是在配置caffe时只是贴出了caffe官网的配置教程链接,一些注意事项并没有说道;而且有一些prerequisites也没有提出来。后来根据自己的摸索总算把它配好了,这里写出来当做一个总结,方便之后的查阅,也希望能给他人一个借鉴,尽量少走弯路。

1.下载

这里首先把接下来需要直接用到的安装包先列出来,方便提前下载:

1.1 首先是CaffeOnSpark源代码,可以从github上下载zip包,或者使用命令下载:

git clone https://github.com/yahoo/CaffeOnSpark.git --recursive
这个源代码包里内置了caffe的源代码包,供接下来编译caffe使用。


1.2 spark和haddop,spark不必说肯定要下载,另外根据github网站上的教程,还需要下载hadoop,这个我不知是必须的还是为了方便在hadoop集群上使用,不过这里就先按照它的要求来做,反正不会有坏处。spark和hadoop的下载地址:

Spark:http://spark.apache.org/downloads.html

Hadoop:http://hadoop.apache.org/releases.html


1.3 Apache Maven,这是一个软件(特别是Java软件)项目管理及自动构建工具,由Apache软件基金会所提供。之所以需要用到这个,是在编译CaffeOnSpark时makefile里面的命令用到了mvn,这个在github网站的教程里并没有提到。


1.4 OpenCV,之所以要opencv,是因为在配置caffe时需要的,如果你的电脑上之前安装过opencv的话,这个可以忽略。OpenCV的下载在下面配置caffe的教程里有链接。


2. 环境配置

这里的每一个环境的设置都是单独配置某个应用时需要设置的,包括配spark,caffe,maven等,所以如果你之前在/etc/profile文件里面设置过某一个环境变量,在这里就可以忽略它。打开/etc/profile文件,输入:

export HADOOP_HOME=/path/to/hadoopexport PATH=${HADOOP_HOME}/bin:${PATH}export SPARK_HOME=/path/to/sparkexport PATH=${SPARK_HOME}/bin:${PATH}export MAVEN_HOME=/path/to//mavenexport PATH=${MAVEN_HOME}/bin:${PATH}

  以上步骤完成了对spark,hadoop,maven环境的设置(对于spark的设置其实不止这么简单,还需要设置java等环境,可以看我另外一篇博客64位UBUNTU 下安装和配置使用python的spark),接下来就是要配置caffe了。值得注意是,即使你之前在你的电脑上配置过caffe,这里还是需要在CaffeOnSpark/caffe-public路径下再次编译caffe,不过caffe所需要的环境就不需要再次设置了。如果你之前没配置过caffe,可以根据这个教程来,只是注意要在CaffeOnSpark/caffe-public下编译caffe,而且不需要再下载caffe安装包。对于makefile.config和makefile文件的修改,也是在这个路径里面进行,除了caffe配置教程里的修改,这里还需要对makefile.config文件加入这一句:

INCLUDE_DIRS += ${JAVA_HOME}/include
这里也用到了java的环境。

3. 编译CaffeOnSpark

如果你上面的步骤都完成了,就可以退到/path/to/CaffeOnSpark路径下编译CaffeOnSpark,执行命令:

sudo make build

使用sudo 为了保证编译过程中对系统访问的权限.但是最好之前先运行:

alias sudo="sudo env PATH=$PATH"
因为系统预装的 sudo 在编译时缺省使用了 --with-secure-path 参数,因此当前用户使用 sudo 时,之前设置的环境变量 $PATH 会被覆盖.通过添加上面那行别名设置,就会在执行 sudo 时把当前的 $PATH 的值再套用上,达到想要的效果。


如果前面的步骤都正确完成,就会开始对CaffeOnSpark进行编译(如下图),过程中需要下载很多东西,所以需要较长时间,请耐心等待。

如果网络不好的话,可能也会出现编译出错的提示(主要是maven相关的),可以等到网络稳定了再make build一次。

编译完成后,再执行下面两条命令:

export LD_LIBRARY_PATH=${CAFFE_ON_SPARK}/caffe-public/distribute/lib:${CAFFE_ON_SPARK}/caffe-distri/distribute/libexport LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/cuda-7.0/lib64:/usr/local/mkl/lib/intel64/


完成以上的工作后,就可以根据github网站上教程的例子进行测试,能正常运行说明配置成功了。

0 0
原创粉丝点击