使用Nvidia Jetson TX1,在新的C++工程中调用caffe

使用Nvidia Jetson TX1,在新的C++工程中调用caffe

最近在英伟达的嵌入式平台下做一些任务,需要在一个现有的工程中调用caffe,这里简单记录一下中途遇到的一些问题和相应的配置方法

-caffe安装
首先,保证开发板上已经配置好caffe,此处caffe配置过程暂时省略,我的开发板操作系统是ubuntu的,配置过程基本没遇到什么麻烦。有一点需要提一下,在编译caffe过程中,遇到一个问题:

src/caffe/CMakeFiles/caffe.dir/build.make:650: recipe for target 'src/caffe/CMakeFiles/caffe.dir/util/gpu_memory.cpp.o' failed

这应该是平台问题,根据https://devtalk.nvidia.com/default/topic/976063/jetson-tx1/the-problem-with-the-assembly-of-caffe-0-15-on-%20jetsontx1/中提到的方法修改$CAFFE_ROOT/3rdparty/cub/host/mutex.cuh文件,利用下面第二行代码替换掉第一行代码,问题解决。

line124: --- #ifndef __arm__
line124: +++ #if !defined(__arm__) && !defined(__aarch64__)

-新工程中调用caffe
由于我使用的是cmake,因此要调用caffe,我需要修改cmakelist.txt文件,对于原工程的部分基本不需要做什么修改,但是为了让程序找到caffe,需要添加以下几行代码:

set(Caffe_DIR "/home/ubuntu/caffe/build")
find_package(Caffe REQUIRED)
set(Caffe_INCLUDE_DIR /home/ubuntu/caffe/include)
set(Caffe_SRC_DIR /home/ubuntu/caffe/src)
include_directories(${Caffe_INCLUDE_DIR} /usr/local/include /usr/local/cuda-8.0/targets/aarch64-linux/include /home/ubuntu/caffe/build/include/)

后面的include_directories如果不添加,编译的过程中会提示找不到caffe或者cublas相关的一些头文件。

至此配置基本完成,配置一下依赖项:

target_link_libraries(yourproject yourprojectlib ${OpenCV_LIBS} ${Caffe_LIBS} /usr/lib/aarch64-linux-gnu/libboost_system.so)

如果不添加/usr/lib/aarch64-linux-gnu/libboost_system.so,会出现如下错误:

undefined reference to `boost::system::generic_category()'
undefined reference to `boost::system::generic_category()'
undefined reference to `boost::system::system_category()'

至此,所有配置工作完成,编译即可。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值