gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 19:43:25 26 4
gpt4 key购买 nike

我已经看到 this question 的答案,但我还是完全不明白。据我所知,这是最基本的设置:

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()

我不明白的是:

优化器使用 net.parameters() 进行初始化,我认为这是网络的内部权重。

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

优化器也不会丢失访问。

因此,如果损失仅适用于输出,而优化器仅适用于 net.parameters,那么它们如何连接?

最佳答案

Optimizer is initialized with net.parameters(), which I thought are internal weights of the net.

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

Loss does not access these parameters nor the net itself. It only has access to net's outputs and input labels.

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

Optimizer does not access loss either.

它访问在loss.backward期间计算的张量

关于python - PyTorch 中的神经网络、损失和优化器如何连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60296637/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com