那么调用forward方法的具体流程是什么样的呢?具体流程是这样的:
以一个Module为例:
1. 调用module的call方法
2. module的call里面调用Module的forward方法
3. forward里面如果碰到module的子类,回到第1步,如果碰到的是Function的子类,继续往下
4. 调用Function的call方法。
5.Function的call方法调用了Function的forward方法。
6. Function的forward返回值
7. module的forward返回值
8. 在module的call进行forward_hook操作,然后返回值。
上述中“调用module的call方法”是指nn.Module 的__call__方法。
原文链接:https://blog.csdn.net/u011501388/article/details/84062483