gpt4 book ai didi

python - 为什么更新优化器会产生不好的结果?

转载 作者:行者123 更新时间:2023-12-04 10:43:53 24 4
gpt4 key购买 nike

我试图更改我的优化器,但首先,我想检查以下两个代码是否给出相同的结果:

optimizer = optim.Adam(params, lr)
for epoch in range(500):
....
optimizer.zero_grad()
loss.backward()
optimizer.step()
for epoch in range(500):
....
optimizer.zero_grad()
loss.backward()
optimizer.step()

如果我在“for 循环”之间插入相同的优化器,
optimizer = optim.Adam(params, lr)
for epoch in range(500):
....
optimizer.zero_grad()
loss.backward()
optimizer.step()

optimizer = optim.Adam(params, lr)
for epoch in range(500):
....
optimizer.zero_grad()
loss.backward()
optimizer.step()

结果变得很糟糕。为什么会发生这种情况?优化器不只是从损失中接收梯度并像步骤一样操作梯度下降吗?

最佳答案

不同的优化器可能有一些“内存”。
例如, Adam 更新规则跟踪每个参数的梯度的一阶和二阶矩,并使用它们来计算每个参数的步长。
因此,如果您初始化优化器,您将删除此信息,从而使优化器“信息不足”,从而导致步长的次优选择。

关于python - 为什么更新优化器会产生不好的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59805592/

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