我注意到 Pytorch Lightning 的文档中提到,您可以通过调用从同一个类中的另一个方法调用前向方法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)
对于火炬nn.Module
(以及所有衍生类别)__call__
环绕模块的forward
因此,从你的角度来看self(x)
基本都是转发x
通过模块self
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)