pytorch三——slover

本文详细介绍了PyTorch中优化器(optimizer)的配置方法,包括如何通过model.named_parameters()获取模型参数,如何根据参数名调整学习率和权重衰减,以及如何根据配置创建SGD优化器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

总览

在这里插入图片描述

slover

在这里插入图片描述
slover这个文件负责 定义optimizer, 对optimizer超参进行设计。

一、build.py

import torch


def make_optimizer(cfg, model):
    params = []
    for key, value in model.named_parameters():  # model.named_parameters() 返回一个generator
        if not value.requires_grad:
            continue
        lr = cfg.SOLVER.BASE_LR
        weight_decay = cfg.SOLVER.WEIGHT_DECAY
        if "bias" in key:
            lr = cfg.SOLVER.BASE_LR * cfg.SOLVER.BIAS_LR_FACTOR
            weight_decay = cfg.SOLVER.WEIGHT_DECAY_BIAS
        params += [{"params": [value], "lr": lr, "weight_decay": weight_decay}]
    if cfg.SOLVER.OPTIMIZER_NAME == 'SGD':
        optimizer = torch.optim.SGD(params, lr, momentum=cfg.SOLVER.MOMENTUM)
    return optimizer

这里就不多记录, 要记得 model的属性,和优化器性质,记录下啊????

###二、__init__.py

from .build import make_optimizer

三、总结

通过以上,可以在主函数中通过以下方式定义一个optimizer

from solver import make_optimizer
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值