pytorch 实现模型不同层设置不同的学习率方式

yipeiwu_com7年前Python基础

在目标检测的模型训练中, 我们通常都会有一个特征提取网络backbone, 例如YOLO使用的darknet SSD使用的VGG-16。

为了达到比较好的训练效果, 往往会加载预训练的backbone模型参数, 然后在此基础上训练检测网络, 并对backbone进行微调, 这时候就需要为backbone设置一个较小的lr。

class net(torch.nn.Module):
  def __init__(self):
    super(net, self).__init__()
    # backbone
    self.backbone = ...
    # detect
    self....

在设置optimizer时, 只需要参数分为两个部分, 并分别给定不同的学习率lr。

base_params = list(map(id, net.backbone.parameters()))
logits_params = filter(lambda p: id(p) not in base_params, net.parameters())
params = [
  {"params": logits_params, "lr": config.lr},
  {"params": net.backbone.parameters(), "lr": config.backbone_lr},
]
optimizer = torch.optim.SGD(params, momentum=config.momentum, weight_decay=config.weight_decay)
 

以上这篇pytorch 实现模型不同层设置不同的学习率方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

对python中两种列表元素去重函数性能的比较方法

对python中两种列表元素去重函数性能的比较方法

测试函数: 第一种:list的set函数 第二种:{}.fromkeys().keys() 测试代码: #!/usr/bin/python #-*- coding:utf-8 -*-...

windows下Python安装、使用教程和Notepad++的使用教程

windows下Python安装、使用教程和Notepad++的使用教程

一、Python下载 1.进入Python官网:https://www.python.org/ 2.选择windows版本(Download > Windows) 3.点击下载P...

Python3+Pycharm+PyQt5环境搭建步骤图文详解

Python3+Pycharm+PyQt5环境搭建步骤图文详解

搭建环境: 操作系统:Win10 64bit Python版本:3.7 Pycharm:社区免费版 一、Python3.7安装 下载链接:官网https://www.python.org...

Python3使用PySynth制作音乐的方法

Python3使用PySynth制作音乐的方法

本人虽然五音不全,但是听歌还是很喜欢的。希望能利用机器自动制作音乐,本我发现了一个比较适合入门的有趣的开源音乐生成模块 PySynth ,文我们主要讲解下如何Python3使用PySyn...

Python、 Pycharm、Django安装详细教程(图文)

Python、 Pycharm、Django安装详细教程(图文)

最近做项目要用到python,那么不用说就得先配置好python环境 以及选择好python工具。接下来分享自己的安装过程。 (一)、Python的安装 1.先进入官网下载python版...