torch.optim.SGD(net.parameters())

torch.optim.SGD 基础用法

torch.optim.SGD 是 PyTorch 中实现随机梯度下降(Stochastic Gradient Descent)的优化器。基础用法是传入待优化参数和学习率:

optimizer = torch.optim.SGD(net.parameters(), lr=0.01)

关键参数说明

  • params:需要优化的参数,通常通过 model.parameters() 获取
  • lr:学习率(默认 0.01)
  • momentum:动量因子(默认 0)
  • dampening:动量抑制因子(默认 0)
  • weight_decay:权重衰减(L2 惩罚,默认 0)
  • nesterov:是否使用 Nesterov 动量(默认 False)

典型配置示例

带有动量项的 SGD 优化器:

optimizer = torch.optim.SGD(
    net.parameters(), 
    lr=0.01, 
    momentum=0.9,
    weight_decay=1e-4
)

使用方法

在训练循环中配合梯度清零和参数更新:

for inputs, targets in dataloader:
    optimizer.zero_grad()
    outputs = net(inputs)
    loss = criterion(outputs, targets)
    loss.backward()
    optimizer.step()

注意事项

学习率需要根据具体任务进行调整,可配合学习率调度器使用:

scheduler = torch.optim.lr_scheduler.StepLR(optimizer, step_size=30, gamma=0.1)

SGD 适用于多数深度学习任务,在批归一化等技术的配合下能取得较好效果。对于稀疏数据或需要自适应学习率的场景,可考虑 Adam 等其他优化器。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值