我已经看到了这个问题的答案,但我仍然完全不明白。据我所知,这是最基本的设置:
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,那么它们如何连接呢?
PIPIONE
当年话下
随时随地看视频慕课网APP
相关分类