我有以下简单的线性回归示例代码如下。import torch
import numpy as np
from torch.autograd import Variable
class linearRegression(torch.nn.Module):
def __init__(self, inputSize, outputSize):
super(linearRegression, self).__init__()
self.linear = torch.nn.Linear(inputSize, outputSize)
def forward(self, x):
out = self.linear(x)
return out
x = np.array([1], dtype = np.float32).reshape(-1, 1)
x = Variable(torch.from_numpy(x))
model = linearRegression(1, 1)
model(x)
输出是tensor([[0.4512]], grad_fn=<AddmmBackward>)
。
我的问题是model.foward(x)
而不是model(x)
是如何输出的,在这段代码中我从来没有调用过forward
,但它似乎被调用了。
1条答案
按热度按时间bsxbgnwa1#
这是因为
nn.Module
的dunder方法__call__
将在内部调用其用户定义的forward
方法。