python调c++之caffe实现

Posted zhengmeisong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python调c++之caffe实现相关的知识,希望对你有一定的参考价值。

上午听人讨论python调c++的问题,第一反应是caffe怎么实现的,晚上回家看了一眼。

其实只要找到具体实现的文件位置就好了,在python/caffe/_caffe.cpp里,第42行有个不怎么显眼的定义:

namespace bp = boost::python;

所以caffe是利用boost扩展库实现的python调用

顺便,不完全调研了下python调c++方法:

ctypes - 平台兼容性差,参考[2]

cython - 性能下降20%,参考[1]

swig - 性能下降70%,参考[1]

boost:python

参考[1][2],cython和swig会不同程度的导致c++性能下降,ctypes平台兼容性差,反正我都没实现过,道听途说。

另外,这里有比较简明的cython和swig代码示例。

以上是关于python调c++之caffe实现的主要内容,如果未能解决你的问题,请参考以下文章

caffe添加自己编写的Python层

caffe Python API 之卷积层(Convolution)

在opencv(C++)中从caffe读取多维数组

Caffe Python特征抽取

Tensorflow 与Caffe(转)

caffe 中 python 数据层