Pytorch学习笔记--常用函数torch.optim.SGD()总结3

1--torch.optim.SGD()函数拓展

import torch

LEARNING_RATE = 0.01  # 梯度下降学习率
MOMENTUM = 0.9  # 冲量大小
WEIGHT_DECAY = 0.0005 # 权重衰减系数

optimizer = torch.optim.SGD(
    net.parameters(),
    lr = LEARNING_RATE,
    momentum = MOMENTUM,
    weight_decay = WEIGHT_DECAY,
    nesterov = True
    )

参数解释:lr表示学习率;momentum表示冲量因子;weight_decay表示权重衰减系数(将使用L2正则项);nesterov表示使用Nesterov冲量;

常规梯度下降算法:​​​​​​

l表示学习率; J(θ)表示损失函数;▽表示求梯度;

momentum的梯度下降算法: 

 m表示冲量因子,l表示学习率;

基于Nesterov冲量的梯度下降算法:

weight_decay的梯度下降算法:

主要作用是对损失函数增加L2正则项,强烈建议通过参考链接1了解L2正则化的作用,即如何避免过拟合,权重衰减通过参考链接2​​​​​​​理解。

2--torch.manual_seed()函数和torch.cuda.manual_seed()函数

torch.manual_seed()函数:为CPU设置种子,确保每次实验生成的随机数固定,即初始化相同;

torch.cuda.manual_seed()函数:为当前GPU设置种子,作用与torch.manual_seed()函数相同;

torch.cuda.manual_seed_all()函数:为所有GPU设置种子。

在神经网络中,参数默认是进行随机初始化的。不同的初始化参数往往会导致不同的结果,当获得较好结果时我们通常希望这个结果是可以复现的。在pytorch中,通过设置随机数种子确保每次代码运行时初始化操作都相同,从而在相同的算法或神经网络程序中,确保运行的结果也相同。参考链接1​​​​​​​参考链接2

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值