pytorch利用 CFFI 进行 C 语言扩展。包括两个基本的步骤(docs):
- 编写 C 代码;
- python 调用 C 代码,实现相应的 Function 或 Module。
在之前的文章中,我们已经了解了如何自定义 Module。至于 [py]torch 的 C 代码库的结构,我们留待之后讨论; 这里,重点关注,如何在 pytorch C 代码库高层接口的基础上,编写 C 代码,以及如何调用自己编写的 C 代码。
官方示例了如何定义一个加法运算(见 repo)。这里我们定义ReLU函数(见 repo)。
1. C 代码
pytorch C 的基本数据结构是 THTensor(THFloatTensor、THByteTensor等)。我们以简单的 ReLU 函数为例,示例编写 C 。
y=ReLU(x)=