Pytorch进阶训练技巧

当pytorch提供的内置损失函数无法实现需求时,可以通过自定义损失函数来实现目标。内置损失函数定义在torch.nn中,常用的有MSELoss(),L1Loss(),CrossEntropyLoss()等。自定义损失函数常通过类实现,像自定义神经网络一样,继承nn.Module()并且实现__init__()和forward()函数,在使用时,直接实例化类对象即可,这样实现的好处是全程用pytorch内置的数据结构进行处理,规范统一。

动态调整学习率的目的是让减少网络训练中震荡,是loss继续下降,模型收敛的更优。在pytorch中学习率被称为scheduler,一个优化器有多个参数组(param_group),每个参数组中用字典结构存储着信息,其中神经网络的参数组中,键‘lr’对应的就是学习率。定义优化器在torch.optim中,常用的优化器有Adam等,优化器需要至少一个参数,该参数即为该优化器需要优化的网络结构,例如 optimizer = torch.optim.Adam(net.parameters()),学习率的设置为 scheduler1 = torch.optim.lr_scheduler. StepLR (optimizer, ,step_size = 30),在实际训练时,需要先调用优化器optimizer.step()再调用scheduler1.step()进行学习率的改变。自定义调整学习率,定义一个函数def adjust_lr_rate(optimizer,…),通过for param_group in optimizer.param_groups: param_group[‘lr] = adjust_lr_rate

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值