前言
最近在使用pytorch的时候,模型训练时,不需要使用forward,只要在实例化一个对象中传入对应的参数就可以自动调用 forward 函数
即:
forward 的使用
class Module(nn.Module):
def __init__(self):
super(Module, self).__init__()
# ......
def forward(self, x):
# ......
return x
data = ..... #输入数据
# 实例化一个对象
module = Module()
# 前向传播
module(data)
# 而不是使用下面的
# module.forward(data)
实际上
module(data)
是等价于
module.forward(data)
forward 使用的解释
等价的原因是因为 python calss 中的__call__和__init__方法.
class A():
def __call__(self):
print('i can be called like a function')
a = A()
a()
out:
i can be called like a function
__call__里调用其他的函数
class A():
def __call__(self, param):
print('
本文链接:https://my.lmcjl.com/post/1920.html
展开阅读全文
4 评论