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 的使用与解释