当前位置: 首页 > news >正文

Pytorch——训练时,冻结网络部分参数的方法

一、原理:

要固定训练网络的哪几层,只需要找到这几层参数(parameter),然后将其 .requires_grad 属性设置为 False 即可。

二、代码:

# 根据参数层的 name 来进行冻结
unfreeze_layers = ["text_id"] # 用列表
# 设置冻结参数:
for name, param in model.named_parameters():# print(name, param.shape)# 错误判定:# if name.split(".")[0] in unfreeze_layers: # 不要用in来判定,因为"id"也在"text_id"的in中。# 正确判定:for unfreeze_layer in unfreeze_layers:if name.split(".")[0] != unfreeze_layer:param.requires_grad = Falseprint(name, param.requires_grad)else:print(name, param.requires_grad)
# 冻结整个网络
for param in self.model.parameters():param.requires_grad = False
# 查看冻结参数与否:
for name, param in self.clip_model.named_parameters():print(name, param.requires_grad)

参考文章

  1. 知乎讨论
http://www.lryc.cn/news/341068.html

相关文章:

  • 制冷铜管焊接介绍
  • spring06:mybatis-spring(Spring整合MyBatis)
  • 如何使用自定义Promptbooks优化您的安全工作流程
  • Text2sql的一些技巧
  • aws云靶场和一些杂记
  • 《AI编程类工具之四——GitHub copiot》
  • Unity类银河恶魔城学习记录13-1 p142 Save system源代码
  • 【C++杂货铺】继承
  • 快速上手Linux核心命令
  • 背 单 词 (考研词汇闪过)
  • 数据库工具解析之 OceanBase 数据库导出工具
  • [Algorithm][滑动窗口][长度最小的子数组] + 滑动窗口原理
  • .NET 发布,部署和运行应用程序
  • B树(B-tree)
  • EelasticSearch是什么?及EelasticSearch的安装
  • Python机器学习项目开发实战:如何进行语音识别
  • 2024年五一杯数学建模C题思路分析
  • 【代码】Python3|Requests 库怎么继承 Selenium 的 Headers (2024,Chrome)
  • JAVA程序设计-对象设计
  • 蓝桥杯2024年第十五届省赛真题-R 格式
  • Linux服务器硬件及RAID配置
  • 前端 vue单页面中请求数量过多问题 控制单页面请求并发数
  • HarmonyOS开发实例:【分布式手写板】
  • Unity TMP Inputfield 输入框 框选 富文本 获取真实定位
  • 如何在原生项目中集成flutter
  • 【设计模式】策略模式
  • Java面试八股之Iterator和ListIterator的区别是什么
  • 服务器中毒怎么办?企业数据安全需重视
  • k8s使用harbor私有仓库镜像 —— 筑梦之路
  • tcp bbr pacing 的对与错