pytorch如何freeze模型参数

在做迁移学习或者自监督学习时,一般先预训练一个模型,再将该模型参数作为目标任务模型的初始化参数,或者直接freeze预训练模型,不再更新其参数。

今天记录下如何pytorch freeze模型参数

我是参考知乎一个文章,总结的很完整,我直接拿过来用了,原文出处为

https: // www.zhihu.com / question / 311095447 / answer / 589307812
from collections.abc import Iterabledef set_freeze_by_names(model, layer_names, freeze=True):if not isinstance(layer_names, Iterable):layer_names = [layer_names]for name, child in model.named_children():if name not in layer_names:continuefor param in child.parameters():#print(param.name)param.requires_grad = not freezedef freeze_by_names(model, layer_names):set_freeze_by_names(model, layer_names, True)def unfreeze_by_names(model, layer_names):set_freeze_by_names(model, layer_names, False)def set_freeze_by_idxs(model, idxs, freeze=True):if not isinstance(idxs, Iterable):idxs = [idxs]num_child = len(list(model.children()))idxs = tuple(map(lambda idx: num_child + idx if idx < 0 else idx, idxs))for idx, child in enumerate(model.children()):if idx not in idxs:continuefor param in child.parameters():param.requires_grad = not freezedef freeze_by_idxs(model, idxs):set_freeze_by_idxs(model, idxs, True)def unfreeze_by_idxs(model, idxs):set_freeze_by_idxs(model, idxs, False)

pytorch如何freeze模型参数相关推荐

  1. pytorch中获取模型参数

    原文链接:pytorch中获取模型参数:state_dict和parameters两个方法的差异比较_造未来-CSDN博客 一.本文的模型案例 代码如下: import torch import to ...

  2. pytorch 一些关于模型参数冻结的问题

    1.lambda表达式,又称匿名函数 作用:函数速写 语法:lambda arg : expression,解释:冒号前是参数,冒号后是返回值. 例子: >>x=range(10) > ...

  3. pytorch怎么设置模型参数初始值_CSGO:想知道职业选手的参数怎么设置?这张地图轻松帮你一键搞定...

    在职业比赛当中,参数往往也是一个非常重要的设定.很多职业比赛中每个选手的持枪视角画面中心,还有各种快捷键的安排,都是完全不一样的.基本上是怎么舒服怎么来,这些设置绝大部分情况下都要根据个人的习惯去进行 ...

  4. angularjs中state的参数4_一文梳理pytorch保存和重载模型参数攻略

    训练过程中保存模型参数,就不怕断电了--沃资基·索德 在训练完成之前,我们需要每隔一段时间保存模型当前参数值,一方面可以防止断电重跑,另一方面可以观察不同迭代次数模型的表现:在训练完成以后,我们需要保 ...

  5. Pytorch模型迁移和迁移学习,导入部分模型参数

    Pytorch模型迁移和迁移学习 目录 Pytorch模型迁移和迁移学习 1. 利用resnet18做迁移学习 2. 修改网络名称并迁移学习 3.去除原模型的某些模块 1. 利用resnet18做迁移 ...

  6. [pytorch、学习] - 4.2 模型参数的访问、初始化和共享

    参考 4.2 模型参数的访问.初始化和共享 在3.3节(线性回归的简洁实现)中,我们通过init模块来初始化模型的参数.我们也介绍了访问模型参数的简单方法.本节将深入讲解如何访问和初始化模型参数,以及 ...

  7. python保存模型与参数_基于pytorch的保存和加载模型参数的方法

    当我们花费大量的精力训练完网络,下次预测数据时不想再(有时也不必再)训练一次时,这时候torch.save(),torch.load()就要登场了. 保存和加载模型参数有两种方式: 方式一: torc ...

  8. PyTorch实现AlexNet模型及参数详解

    文章目录 一.卷积池化层原理 二.全连接层原理 三.模型参数详解 注:AlexNet论文错误点 1.卷积池化层1 (1)卷积运算 (2)分组 (3)激活函数层 (4)池化层 (5)归一化处理 (6)参 ...

  9. Pytorch 如何 优化/调整 模型参数

    Pytorch 如何自动优化/调整 模型超参 文章目录 Pytorch 如何自动优化/调整 模型超参 背景 优化模型参数 贝叶斯优化 深度学习框架下的参数优化 平台安装 使用参考 参考 背景 对于优化 ...

最新文章

  1. do一下来了一个redux
  2. C++中的volatile关键字
  3. 分享一个超棒的响应式幻灯jQuery插件 - refineslide
  4. KeyMob移动广告聚合平台助力开发者,提供广告聚合服务
  5. 大话设计模式—备忘录模式
  6. 螺旋方阵 | 蛇形填数
  7. python 多次读取文件的细节
  8. java如何对list进行排序_java中如何对list进行排序
  9. spring3: AOP 之 6.2 AOP的HelloWorld
  10. 图标圆角角度_教你在 iOS 和 macOS 上获取 App 图标
  11. MySQL-在字段上使用函数不会走索引的原因是什么?
  12. 《你不知道的javascript》读书笔记-上卷-第二章:this的全面解析
  13. python需要学什么-学习python需要什么基础吗?老男孩Python
  14. 计算机网络的概念、功能、组成和分类
  15. 【.7z 格式文件的压缩、解压】
  16. Hdu 1240 Asteroids题解
  17. 基于Docker的交互式人脸识别应用
  18. 【Java】算法积累1——大整数相加
  19. 用SRS搭建流媒体系统
  20. adb绕过夜神模拟器锁屏密码

热门文章

  1. C语言编程>第三周 ⑥ 有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
  2. 社区发现算法——(Spectral Clustering)谱聚类算法
  3. 内存频率有哪些?怎么看内存频率
  4. 计算机在军事方面的应用
  5. 图片的质量压缩和二次采样
  6. 计算机科学科技创新作品怎么做,第五届科技创新小发明策划书 最终版.doc
  7. java写netcdf_[转]netcdf入门
  8. C++读取netcdf文件
  9. python与seo实战课程it技术_python与SEO实战课程学习B计划
  10. 2023.04.22更新大麦网移动端/M端抢购软件和使用教程