gpt4 book ai didi

machine-learning - 将 optim.step() 与 Pytorch 的 DataLoader 一起使用

转载 作者:行者123 更新时间:2023-11-30 09:15:26 25 4
gpt4 key购买 nike

通常学习周期包含:

optim.zero_grad()
loss(m, op).backward()
optim.step()

但是当显卡放不下数据时应该怎样循环呢?

第一个选项:

for ip, op in DataLoader(TensorDataset(inputs, outputs),
batch_size=int(1e4), pin_memory=True):
m = model(ip.to(dev))
op = op.to(dev)
optim.zero_grad()
loss(m, op).backward()
optim.step()

第二个选项:

optim.zero_grad()
for ip, op in DataLoader(TensorDataset(inputs, outputs),
batch_size=int(1e4), pin_memory=True):
m = model(ip.to(dev))
op = op.to(dev)
loss(m, op).backward()
optim.step()

第三个选项:调用backward()后累积梯度。

最佳答案

第一个选项是正确的,并且对应于批量梯度下降

第二个选项不起作用,因为 mop 在每个步骤都会被覆盖,因此您的优化器步骤将仅对应于基于最终批处理的优化。

关于machine-learning - 将 optim.step() 与 Pytorch 的 DataLoader 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57280356/

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