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代码示例。

猜你喜欢

转载自www.cnblogs.com/zhengmeisong/p/11415843.html