外部c++工程和python调用caffe 接口遇到的几个问题及解决办法

外部c++工程和python调用caffe 接口遇到的几个问题及解决办法

缺少caffe.pb.h和caffe.pb.cc

进入路径/home/jesse/caffe/src/caffe/proto 用caffe.proto生成caffe.pb.h和caffe.pb.cc
用命令 protoc ./caffe.proto --cpp_out /home/jesse/caffe/src/caffe/proto/

注意要改成自己对应的文件夹路径,会在此文件夹下生成两个文件,然后在/home/jesse/caffe/include/caffe/下新建proto文件夹,再将两文件复制到/home/jesse/caffe/include/caffe/proto下。

CUDA_cublas_device_LIBRARY问题

将cmke卸载 然后安装cmake3.12.2以上版本即可解决 。但是要先卸载cmake。可通过cmake --version查看当前cmake版本。
若是通过apt安装的 则可通过命令卸载
apt-get autoremove cmake
若是通过源码安装以上删除方式则不能成功删除,因此对于源码安装的cmake,经过实践,首先到cmake的安装目录下找到install_manifest.txt,txt中保存了所有cmake的附属文件的安装目录,将txt中显示的文件全部删除,即可完成对于cmake的卸载。
通过find cmake 可查看到cmake的安装路径
例如,安装路径为/usr/local/share/cmake* 、/usr/local/bin/cmake等,执行以下命令:
sudo rm -rf /usr/local/share/cmake

安装3.12.2版本,可查看

流程

安装网上的流程配置好makefile.config后,
mkdir build
cd build
cmake …
没有报错后
make
成功以后caffe就被cmake编译好了,外部的工程就可以调用caffe的c++接口了
在自己的c++工程里面建立文件CMakeList.txt如下

#1.cmake verson,指定cmake版本 
cmake_minimum_required(VERSION 2.9)
#2.project name,指定项目的名称,一般和项目的文件夹名称对应
project(MTCNN_Accelerate-Onet)

#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(CMAKE_CXX_STANDARD 11)
#3自动找到 opencv的路径
find_package(OpenCV)

find_package(Caffe REQUIRED)
#message(FATAL_ERROR ${Caffe_INCLUDE_DIRS})
#include_directories(${Caffe_INCLUDE_DIRS})
#source directory,源文件目录
AUX_SOURCE_DIRECTORY(src DIR_SRCS)
set(SOURCE_FILES main.cpp mtcnn.cpp mtcnn.h)
add_executable(MTCNN_Accelerate-Onet ${DIR_SRCS})

target_link_libraries(MTCNN_Accelerate-Onet ${OpenCV_LIBS} )
target_link_libraries(MTCNN_Accelerate-Onet ${Caffe_LIBRARIES})

同样
mkdir build
cd build
cmake …
没有报错后
make
就生成了
工程的可执行文件MTCNN_Accelerate-Onet

按照上面正常的流程 是不会有问题的,中途哪一步出问题了,没成功都会导致后面的也编译不成功,会出现其他的各种问题。
当然你也会遇到其他问题,但是不要急躁,可以重新看一下caffe整体配置问题。最后调用命令
sudo make runtest
测试caffe是否安装成功,一般测试成功了,其他的问题 都好解决。

python调用caffe

对于python调用caffe里面的接口。可直接将caffe/build/lib和caffe/python/caffe拷到你的python库里面。就可以import caffe了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值