Dan*_* S. 1 python pytorch pytorch-lightning
我注意到 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)
Run Code Online (Sandbox Code Playgroud)
一般来说,在Python中,当“调用”一个对象时,你正在调用它的__call__方法。那是,
self(x)
Run Code Online (Sandbox Code Playgroud)
相当于
self.__call__(x)
Run Code Online (Sandbox Code Playgroud)
对于pytorch nn.Module(以及所有衍生类)来说__call__,包装了模块的forward功能,因此,从你的角度来看self(x),基本上是x通过模块进行转发self。
| 归档时间: |
|
| 查看次数: |
1027 次 |
| 最近记录: |