为了账号安全,请及时绑定邮箱和手机立即绑定

神经网络、损失和优化器在PyTorch中是如何连接的?

神经网络、损失和优化器在PyTorch中是如何连接的?

PIPIONE 2022-08-02 18:26:10
我已经看到了这个问题的答案,但我仍然完全不明白。据我所知,这是最基本的设置:net = CustomClassInheritingFromModuleWithDefinedInitAndForward()criterion = nn.SomeLossClass()optimizer = optim.SomeOptimizer(net.parameters(), ...)for _, data in enumerate(trainloader, 0):    inputs, labels = data    optimizer.zero_grad()    outputs = net(inputs)    loss = criterion(outputs, labels)    loss.backward()    optimizer.step()我不明白的是:Optimizer是用net.parameters()初始化的,我认为这是net的内部权重。损失不会访问这些参数,也不会访问网络本身。它只能访问网络的输出和输入标签。优化器也不会访问丢失。那么,如果损失只适用于输出,而优化器仅适用于net.parameters,那么它们如何连接呢?
查看完整描述

1 回答

?
当年话下

TA贡献1890条经验 获得超9个赞

Optimizer是用net.parameters()初始化的,我认为这是net的内部权重。

这是因为优化器将在训练期间修改网络的参数。

损失不会访问这些参数,也不会访问网络本身。它只能访问网络的输出和输入标签。

损失仅计算预测与真实值之间的误差。

优化器也不会访问丢失。

它访问在loss.backward


查看完整回答
反对 回复 2022-08-02
  • 1 回答
  • 0 关注
  • 85 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信