ubunt18.04下caffe2(CPU)源码编译

通过源码编译caffe2相对与caffe要简单一些,在caffe下需要的第三方库要自己安装,caffe2的源码包含了需要的第三库的链接地址,所以caffe2可以自己编译这些第三方库,另外caffe下必须安装的第三方库,在caffe2依然可以配置使用,但是已经是非必须的。如果依然想让caffe2使用caffe下必须的第三方库,就要自己安装了。

该文章caffe第三方库安装讲述了caffe下第三方库的安装。

python版caffe2编译安装

参考caffe2编译安装官方教程,安装caffe2需要的python库后执行如下命令:

     git clone https://github.com/pytorch/pytorch.git && cd pytorch
     git submodule update --init --recursive
     python setup.py install

这种方式比较简单,只是因为caffe2集成到了pytorch当中,所以安装pytorch就安装了caffe2,并且如果你的电脑中有显卡并且安装了cuda,会自动安装成gpu版。但是这个方式没有c/c++版的库,如果想要使用caffe2写c/c++程序,就只能通过caffe2源码编译了。

caffe2源码编译c/c++库

下载caffe2源码caffe2下载地址,网上有些说下载caffe2只能通过

git clone https://github.com/caffe2/caffe2 --recursive

方式,并且--recursive不能少,这里主要就是递归下载caffe2的子目录,其实主要就是third_party这个子目录下的内容下载,这个目录就是caffe2需要的第三方库的git网址链接,但是通过上述命令clone下来的caffe2的third_party目录里只有第三方库的文件夹,文件夹下却没有东西。所以我们可以直接下载caffe2解压。

进入caffe2/third_party目录,清空该目录,建立一个shell文件,比如third_party.sh,打开该文件输入以下内容:

#!/bin/sh

git clone https://github.com/ARM-software/ComputeLibrary.git
git clone https://github.com/Maratyszcza/FP16.git
git clone https://github.com/Maratyszcza/FXdiv.git 
git clone https://github.com/Maratyszcza/NNPACK.git 
git clone https://github.com/zdevito/aten 
git clone https://github.com/google/benchmark.git 
git clone https://github.com/Maratyszcza/cpuinfo.git 
git clone https://github.com/NVlabs/cub.git 
git clone https://github.com/eigenteam/eigen-git-mirror.git 
git clone https://github.com/facebookincubator/gloo 
git clone https://github.com/google/googletest.git 
git clone https://github.com/Yangqing/ios-cmake.git 
git clone https://github.com/nvidia/nccl.git 
git clone https://github.com/NervanaSystems/nervanagpu.git 
git clone https://github.com/onnx/onnx.git 
git clone https://github.com/google/protobuf.git 
git clone https://github.com/Maratyszcza/psimd.git 
git clone https://github.com/Maratyszcza/pthreadpool.git 
git clone https://github.com/pybind/pybind11.git 
git clone https://github.com/PeachPy/enum34.git 
git clone https://github.com/Maratyszcza/PeachPy.git 
git clone https://github.com/benjaminp/six.git 
git clone https://github.com/facebook/zstd.git

mv eigen-git-mirror eigen

可以看出,其实就是这些第三方库的下载

保存这个shell文件。在命令行下执行:

chomd +x third_party.sh

./third_party.sh执行完这个shell,等待所有第三方库下载完了。这是third_party目录下就有了各个第三方库源码

接着就是通过cmake生成Makefile了,这里我们使用cmake-gui生成文件,所以你的Ubuntu下要安装cmake,cmake-gui

具体安装方法另行百度,这里不做介绍。

打开cmake-gui,在where is the source code栏输入“caffe2根目录”,where to build the binaries栏输入“caffe2根目录/build”,如下图:

点击configure,如果你的caffe2根目录没有build目录,会提示你的源码目录没有build文件夹,将自动新建build文件夹(build这个名字可以是任意一个根目录下没有的文件夹名,比如temp,cmake-gui会自动创建 这样一个命名的文件夹)。

稍等片刻,列表中出现相关配置参数,默认即可,如果有错误,按错误提示进行修改

截取部分错误信息:

CMake Error at /home/yhs/program/cmake/share/cmake-3.12/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
Could NOT find NumPy (missing: NUMPY_INCLUDE_DIR NUMPY_VERSION)

通过错误信息可以看出找不到numpy,手动添加NUMPY_INCLUDE_DIR NUMPY_VERSION这连个变量,并配置对应的变量值。点击cmake-gui界面上的”Add Entry“按钮,在弹出的界面进行配置

Name:输入变量名

Type:选择变量类型(BOOL,PATH,STRING),这里是一个路径所以选择PATH

Value:变量值

Description:对变量进行一些说明(可不填)

NUMPY_INCLUDE_DIR这里使用的是anaconda3,所以numpy的include在anaconda3/lib/python3.6/site-packages/numpy/core/include。自己配置的话找到numpy的include路径填入Value就行了。

NUMPY_VERSION变量是一个STRING型变量,输入numpy的版本,如果不知道numpy版本,可以在命令行下输入:

pip list | grep numpy

就可以看到numpy的版本了,添加NUMPY_VERSION如下图:

配置python相关信息,选中cmake-gui的Advanced选项,在search栏输入python,会列出所有Python相关配置信息,配置python可执行文件路径,python include路径,python lib动态库文件完整路径,只需要配置这三个变量,其他都默认

 

确定之后,在列表中找到USE_CUDA,不要选中这项,我们这里不编译cuda版本,后续我会添加cuda版,可以在Search栏输入CUDA可以查看只包含CUDA字符窜的变量

 其他配置项这里就不多说了,只说一个CMAKE_INSTALL_PREFIX,这是配置安装目录的,如果项将编译完的caffe2安装到指定位置(如果该位置不存在将会自动创建),而不是默认的/usr/local下可以配置这个目录。

配置好之后,再次点击configure如果没有报错,在cmake-gui下方信息栏出现configure done说明配置没有问题,并且信息栏中还会列出配置的相关信息,然后点击Generate在信息栏出现Generate done。此时在build文件夹下就有了Makefile。

进入caffe2/build下,在命令行输入make -j8,-j是使用多线程编译,8就是使用八个线程,你可以输入一个小于你电脑cpu线程的数值。编译时间视电脑性能而定。等待编译完成即可

编译完成执行make install进行安装,如果在cmake-gui中配置了CMAKE_INSTALL_PREFIX变量,就会安装到该变量设置的目录下。

至此caffe2编译安装完成。 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值