【发布时间】:2020-06-03 09:40:57
【问题描述】:
我已经看到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 起作用,那么它们如何连接?
【问题讨论】:
标签: python neural-network pytorch gradient-descent backpropagation