PyTorch深度学习实践05用pytorch实现线性回归 __call__ 和forward函数

PyTorch深度学习实践05用pytorch实现线性回归 call 和forward函数

__call __

先上结论:

model(x_data)到底是怎么调用的:
相当于model(x_data)实际上调用的是__call__(x_data),这里的call函数是LinearModel继承自torch.nn.Module的call。也就是Module这个基类的call函数。然后__call__(input)调用(Module的)forward函数。但是我们需要的forward函数和基类里的forward函数不同,所以我们重新写了个forward函数。最后__call__调用的就是我们自己写的forward函数。

可看可不看:
call函数的作用就是让对象可以调用,比如model里可以写(x)可以直接调用model。因为model是LinearModel的实例化对象,而LinearModel是继承了nn.Module的,原来的对象是callable的,我只需要重写forward就行 。之前pytorch里的module的__call__里就有写forward,这样在原来的pytorch里的module里forward就是可调用的。现在做的只是把torch.nn.Module里的forward重新写了一遍而已,为了覆盖。貌似叫函数重载。那么为撒谎forward在定义模型的时候必须重写?因为不同模型在其计算过程基本是不同的。
参考链接:https://blog.csdn.net/dss_dssssd/article/details/82977170(值得看)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

念旧人丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值