在课堂上呼唤自我是什么



我注意到Pytorch Lightning的文档中提到,只需调用self(x),就可以从同一类中的另一个方法调用正向方法。我找不到任何关于这是如何工作的信息。我一直以为你会用self.forward调用这个方法

显然,它调用正向方法,但如何调用?有关于发生了什么的python文档吗?

我在以下URL找到了这个:https://pytorch-lightning.readthedocs.io/en/stable/new-project.html

具体的代码片段如下:

def training_step(self, batch, batch_idx):
...
z = self(x)

一般来说,在python中,当"呼叫";对象,则调用其__call__方法。也就是说,

self(x)

相当于

self.__call__(x)

对于pytorchnn.Module(和所有派生类(,__call__封装模块的forward函数,因此,从您的角度来看,self(x)基本上是通过模块self转发x

最新更新