forward调用

pytorch中模型训练的疑惑

Posted by 周自横 on February 10, 2020

fordward调用

刚刚开始学习pytorch,在线性函数简洁实现这部分中,遇到了定义net之后,在调用的时候中未使用forward的疑惑

# 模型定义
class LinearNet(nn.Module):
    def __init__(self,n_feature):
        super(LinearNet,self).__init__()
        self.linear = nn.Linear(n_feature,1)
    def forward(self,x):
        y = self.linear(x)
        return y

调用时直接使用了net(X),在调试过程中我发现了这步是运行了forward函数,最开始以为是我学艺不精,python可以在只存在一个方法的类中这样使用,查过之后发现并不是这样,是因为在pythonclass中的__call____init__方法的原因,若是初始化使用了__call__,可以直接在其中调用其他的函数。

我是看这个博客的pytorch 中的 forward 的使用与解释