我在Pytorch Lightning的文档中注意到,提到可以通过调用来从同一类中的另一个方法调用forward方法self(x)
。我尚未找到有关此工作原理的任何信息。我一直以为你会用self.forward
显然,它调用了forward方法,但是如何呢?是否有关于发生什么情况的python文档?
我在以下网址找到了这个网址: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)
对于pytorch nn.Module
(以及所有派生类),它__call__
包装了模块的forward
功能,因此,从您的角度来看self(x)
,基本上是x
通过模块转发self
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句