在构建CNN时,类中的forward函数并没有显示的使用,但是却在构建网络的时候起到十分重要的作用。那么forword函数是在哪使用的呢?

class Net(nn.Module):
def __init__(self):
...

def forward(self, x):
...
return F.log_softmax(x)
Net(data) == Net.forward(data)

为什么呢,是因为类中的__call__函数的作用,但是类中没有写__call__这个方法,所以我认为,这个call函数应该是默认实现的,比如说下面这个例子。

class A():
def __call__(self,param):
print("Go to sleep Barry")
res = self.forward(param)

def forward(self, input_):
print('forward函数被调用了,传入了:',input_)



a = A()
a('a')
Go to sleep Barry
forward函数被调用了,传入了: a

​所以是call函数中调用了forward函数​