如何在chainer中插入已编写的C / C ++层

时间:2017-08-23 03:20:39

标签: chainer

我已经编写了使用CPU的C ++层,我想插件chainer框架,怎么做?可以将CPU和GPU层组合在一起吗?

1 个答案:

答案 0 :(得分:0)

您可以使用Cython,pybind11或任何工具从Python调用C ++代码,将C ++层嵌入到Chainer中。你必须编写一些胶水代码才能做到这一点(例如,将NumPy数组缓冲区转换为/用C ++编写的层中使用的数据格式,并将您的图层界面转换为Chainer样式函数;后者应该很容易完成通过编写一个小的Python类。)

为了在前向/后向计算中混合CPU和GPU,您可以使用F.copy();它支持backprop(参见https://docs.chainer.org/en/stable/reference/generated/chainer.functions.copy.html?highlight=copy)。