PyTorch 底层组卷积的实现方式
https://github.com/pytorch/pytorch/blob/master/aten/src/ATen/native/Convolution.cpp#L289-L297
简单的说就是把通道split成group个数目,然后分别进行卷积,然后cat起来。
如何有效地阅读PyTorch的源代码?
代码统计情况
统计时间: 2017.08.20 (泄漏从啥时候开始看的了...)
- c、cpp、py都在一个量级,5/6万左右
- cuda 3万
代码全部都要过一遍的话,需要了解C、C++、Python、CMake、CUDA,外加相关的有C\C++代码打包成Python可调用的.so库、Python打包安装过程、BLAS线性库等。
代码阅读顺序推荐
- 运行 python setup.py build ,生成一遍 (非 install,防止覆盖已安装的pytorch)
- 顺着 setup.py build 命令看安