You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ShuffleNet中get_parameters与直接传入model.parameters给优化器的区别

两种参数传入优化器的核心区别
  • 权重衰减的生效规则完全不同
    直接传入model.parameters()时,优化器配置的全局weight_decay参数会统一作用于模型的所有可训练参数。
    使用get_parameters函数处理后,参数被拆分为两个独立的参数组,各自使用不同的权重衰减规则:

    权重衰减组:仅包含参数名含weight且张量维度大于1的参数,对应卷积层、全连接层的二维权重矩阵,这类参数会继承优化器的全局权重衰减设置
    无权重衰减组:包含其余所有参数,包括所有层的偏置bias、BatchNorm/LayerNorm等归一化层的一维缩放系数weight和偏移系数bias,这类参数被强制设置weight_decay=0,无论优化器全局如何配置,都不会施加L2正则

  • 训练效果存在差异
    这种参数拆分是CV领域训练的通用最优实践:不对偏置、归一化层参数施加L2正则,可以避免这类位置敏感的参数被过度约束,通常能小幅提升模型的拟合能力与泛化精度。如果直接传入所有参数且设置了全局权重衰减,上述参数会被同步正则,反而可能拖累模型最终效果。
  • 超参数调整的灵活性不同
    拆分参数组后,可以随时单独对两类参数配置不同的学习率、动量等超参数,不需要额外做参数筛选;直接传入model.parameters()只能对所有参数统一设置超参数,要实现自定义分组需要额外编码处理。

内容的提问来源于stack exchange,提问作者Nikoo_Ebrahimi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 01:36:08