冻结训练的理解与使用

2023-11-08

冻结训练的作用:当我们已有部分预训练权重,这部分预训练权重所应用的那部分网络是通用的,如骨干网络,那么我们可以先冻结这部分权重的训练,将更多的资源放在训练后面部分的网络参数,这样使得时间和资源利用都能得到很大改善。然后后面的网络参数训练一段时间之后再解冻这些被冻结的部分,这时再全部一起训练。

参考知乎帖子:https://www.zhihu.com/question/311095447/answer/589307812

#------------------------------------#
#   冻结一定部分训练
#------------------------------------#
for param in model.backbone.parameters():
	param.requires_grad = False #冻结骨干网络,这部分网络有与训练权重
optimizer = optim.Adam(filter(lambda p: p.requires_grad, net.parameters()), lr=0.1)
# compute loss 
# loss.backward()
# optmizer.step()
# 解冻
for param in model.backbone.parameters():
    param.requires_grad = True
	optimizer.add_param_group({'params': param})
# compute loss 
# loss.backward()
# optmizer.step()

这里的例子来自yolov3的一个实现,网上其他人那看到的冻结训练,在优化器中通过添加一个filter把冻结了的那部分参数给过滤了,如上面所示。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

冻结训练的理解与使用 的相关文章

  • Crontab计划任务

    Crontab计划任务 原文地址 https blog csdn net u012852374 article details 53892880 Crontab定义 Crontab是一个用于设置周期性被执行的任务的工具 被周期性执行的任务我
  • git commit压缩

    第一步 通过命令 git log 查看提交记录 第二步 执行变基git rebase i HEAD

随机推荐

  • 大文件上传并进行md5校验过程中遇到的问题,复制InputStream导致内存溢出

    最近因为一个项目需求 需要支持上传文件 并且在上传的过程中通过流式的方式生成md5校验码 然后好需要利用这个输入流来生成本地预览文件 而InputStrream是只能读一次的 并不能重复读 所以在这里就需要进行流的复制 解释一下 fileU
  • linux环境搭建nacos集群详解

    目录 一 集群部署说明 二 环境准备 三 搭建Nacos集群 四 调整Nginx的配置 五 测试访问 一 集群部署说明 官网集群部署 https nacos io zh cn docs cluster mode quick start ht
  • 使用Python,OpenCV进行按位AND、OR、XOR和NOT

    使用Python OpenCV进行按位AND OR XOR和NOT 1 效果图 2 源码 参考 这篇博客将介绍如何使用OpenCV应用按位AND OR XOR和NOT 上一篇学习了如何从图像中裁剪和提取感兴趣的区域 ROI 截取的都是矩形
  • keil GD32编译过程中出现“No space in execution regions with .ANY selector matching”问题

    用keil GD32官方的例程基础上移植了自己的测试demo 编译验证成功 然后开始移植FreeRTOS 移植完就遇到了这个问题 网上找到一篇文章 说是keil模拟的芯片内存远小于实际芯片内存 因为每个人遇到的情况可能都不太一样 我自己的k
  • python Tkinter使用与美化

    Tkinter使用 自定义窗体 import tkinter root tkinter Tk 自定义窗体的标题 root title 我的第一个窗口 自定义窗体的图标 注意 这里的图标只能是ico结尾的图标文件 需自己事先创建图标 括号中写
  • Host 'XXX' is not allowed to connect to this MySQL server 解决方案/如何开启MySQL的远程帐号...

    如何开启MySQL的远程帐号 1 首先以 root 帐户登陆 MySQL 在 Windows 主机中点击开始菜单 运行 输入 cmd 进入控制台 然后cd 进入MySQL 的 bin 目录下 然后输入下面的命令 gt MySQL uroot
  • Linux 中线程的实现

    文章目录 一 线程的概念 二 线程的实现方式 三 线程库中的接口介绍 四 线程的简单使用 4 1 主函数创建一个线程 4 2 主函数创建多个线程 4 3 多进程对一个变量进行操作 五 线程安全 六 线程创建 6 1 创建进程上限 6 2 线
  • 华为数通方向HCIP-DataCom H12-831题库(单选题:81-100)

    第81题 关于结构化的网络故障排除流程中的确认故障阶段的描述 正确的是 A 应关注如何更好的解决故障而不论该故障是否属于自己的负责范围 B 应重视用户的意见 以用户的判断为依据来判断故障问题 C 应使影响最小化 尽量不让其他人知道网络出现了
  • jmeter基础操作,图文

    jmeter基础操作 1 jmeter环境搭建 jmeter是用Java开发的 依赖jdk jer所以jdk的版本使用1 8版本 1 安装JDK环境 配置环境变量 2 官网下载jmeter下载需要的版本包 3 下载完成后 在bin文件夹下
  • 使用VSCode内置终端执行python脚本时出现OMP: Error #15错误

    本问题出现的必要条件 Windows11 21H2 使用VSCode内置终端执行脚本 且通过编辑器右键的 在终端中运行python文件 选项启动终端 脚本中调用了matplot包 VSCode和Powershell都针对Conda进行了配置
  • layui笔记之树形结构

    div ul class easyui tree ul div div class easyui menu style width 120px div 添加 div div
  • 【registry】 javax.el.ExpressionFactory.newInstance()Ljavax/el/ExpressionFactory;

    1 背景 在 registries registrie rest service idea 无法引入的背景下 以及 registry NoSuchFieldError INCLUDE ALL 以及 解决依赖问题报错 javax el Exp
  • 小程序开发----自定义有效期缓存

    在uni app中使用 缓存数据优化 import cache from common js cache 使用方法 一 设置缓存 string cache put k string你好啊 json cache put k b 3 2 arr
  • 从tensorboard导出数据,自己用python画折线图

    有大佬有更好的方法 请狠狠踢我 我很爱学习的 写论文时 我们可能需要这样的 但是tensorboard展示的是这样的 虽然tensorboard可以导出svg 但是使用visio去除不了背景 同门亲手验证的 办法就是从tensorboard
  • CSAPP:DataLab详细解析

    做题的时候看了好多博客 一点一点更深入的了解 学习 不得不说lab真的很好 学到很多 做题准备我已经在上一个博客提到了 建议写之前看一下README 1 bitXor 运用 和 实现x y 这里可以用一个真值表 x y x y 0 0 0
  • char*的变量不可直接==“字符串”

    char 的变量不可直接 字符串 需要使用strcmp a b
  • less命令乱码_less命令

    less命令乱码 The less command is one I use a lot It shows you the content stored inside a file in a nice and interactive UI
  • PCL 法向量夹角约束的欧式聚类分割

    目录 一 概述 二 代码实现 三 结果展示 一 概述 目前广为流传的欧式聚类都是 PCL 欧式聚类分割一文中的实现方式 但是 完整版的点云欧式聚类算法是可以附带法向量夹角约束的 具体使用方法见本文 二 代码实现 include
  • PS图层混合算法之六(差值,溶解, 排除)

    差值模式 查看每个通道中的颜色信息 比较底色和绘图色 用较亮的像素点的像素值减去较暗的像素点的像素值 与白色混合将使底色反相 与黑色混合则不产生变化 排除模式可生成和差值模式相似的效果 但比差值模式生成的颜色对比度较小 因而颜色较柔和 与白
  • 冻结训练的理解与使用

    冻结训练的作用 当我们已有部分预训练权重 这部分预训练权重所应用的那部分网络是通用的 如骨干网络 那么我们可以先冻结这部分权重的训练 将更多的资源放在训练后面部分的网络参数 这样使得时间和资源利用都能得到很大改善 然后后面的网络参数训练一段