出于不同的目的,希望固定预训练网络的某一些卷积层不进行参数的学习。

文章目录

  • 整个网络不进行参数学习
  • 某一个 BN 层不进行参数学习
  • 网络中所有的 Conv 和 BN 层不进行参数学习

整个网络不进行参数学习

ResNet net = resnet50();
net->to(device);
torch::load(net, "../models/resnet50_caffe.pt");
for (const auto& p : net->parameters()) {p.requires_grad_(false);
}

某一个 BN 层不进行参数学习

/* 放在网络的构造函数中使用 */
register_module("conv1", conv1);
register_module("bn1", bn1);
for(const auto& p : bn1->parameters()) {p.requires_grad_(false);
}

网络中所有的 Conv 和 BN 层不进行参数学习

/* 放在网络的构造函数中使用 */
for(const auto& m : this->modules(/*include_self=*/false)) {if(auto* conv = m->as<torch::nn::Conv2d>()) {/* 卷积层只有权重 */conv->weight.requires_grad_(false);/* 也可以这样写 */for(const auto& p : m->parameters()) {p.requires_grad_(false);}}else if(auto* bn = m->as<torch::nn::BatchNorm2d>()) {/* BN 层有权重和偏置 */bn->weight.requires_grad_(false);bn->bias.requires_grad_(false);/* 也可以这样写 */for(const auto& p : m->parameters()) {p.requires_grad_(false);}}
}

这种方法也适用于参数初始化

for(const auto& m : this->modules(/*include_self=*/false)) {if(auto* conv = m->as<torch::nn::Conv2d>()) {conv->weight.normal_(0, 0.01);}else if(auto* bn = m->as<torch::nn::BatchNorm2d>()) {bn->weight.fill_(1);bn->bias.zero_();}
}

[LibTorch] 指定参数不进行学习相关推荐

  1. 受用一生的高效 PyCharm 使用技巧(二)pycharm 指定参数运行文件

    https://mp.weixin.qq.com/s/Ii0-qHUXayTPb-K-17hmQQ 在介绍技巧之前,有些话想声明一下,这个系列的一些小技巧,对于一些重试用户来说可能是小 case,如果 ...

  2. 卷积神经网络(CNN)张量(图像)的尺寸和参数计算(深度学习)

    卷积神经网络(CNN)张量(图像)的尺寸和参数计算(深度学习) 分享一些公式计算张量(图像)的尺寸,以及卷积神经网络(CNN)中层参数的计算. 以AlexNet网络为例,以下是该网络的参数结构图. A ...

  3. R语言ggplot2可视化:ggplot2可视化使用labs函数为可视化图像添加(caption)图片说明文字、theme_bw中指定参数base_size来改变图片说明文字、轴标签等的大小

    R语言ggplot2可视化:ggplot2可视化使用labs函数为可视化图像添加(caption)图片说明文字.theme_bw中指定参数base_size来改变图片说明文字.轴标签等的大小 目录

  4. 内核参数 linux dd,内核模块指定参数方式

    内核模块的参数传递方式很多,第一次尝试仅仅介绍了 指定普通类型和数组类型 内核模块指定参数方式 定义内核参数变量 普通变量 : module_param(变量名,变量类型,访问许可掩码) 数组变量 : ...

  5. Matlab对指定参数的曲线进行非线性拟合

    Matlab拟合曲线的方式 Matlab拟合曲线的方式有很多种,有三次样条插值.线性插值.多项式拟合等等.多项式拟合由于函数由f(x)=anxn+an−1xn−1+...+a1x+a0f(x)=a_n ...

  6. 获取url中的参数方法,避免#的干扰,删除url指定参数(vue hash模式 有#删除指定参数问题)

    function urlParse() {let url = window.location.search;let obj = {};let reg = /[?&][^?&]+=[^? ...

  7. c语言学习笔记【结构体02】结构体指针变量与结构体变量的函数参数,C语言学习笔记结构体02结构体指针变量与结构体变量的函数参数.docx...

    C 语言学习笔记[结构体02]结构体指针变量与结构体变量 的函数参数 C 语言学习笔记之结构体指针变量一提指针,那可 是 C 语言的核心了,有多少学子曾拜倒在指针的脚下.单纯的说指针,其实并不难,但是 ...

  8. 【笔记】微信开发者工具自定义编译模式(编译时,携带 指定参数 直接跳转 指定页面)

    文章目录 问题 解决 问题 发现这个神奇功能之前,一般都是在 app.json 下 pages 里将当前页面置顶,参数写死... 或是,什么都不做,繁琐的一级一级的点,直到从首页进入需要调试页面... ...

  9. Uniapp URL地址栏获取指定参数

    前言   Uniapp在URL中的参数会存在于两种位置,如下:   http://localhost:8080/unipp?id=399#/pages/index/index?name=eagle   ...

最新文章

  1. linux改变工作目录命令,linux命令:cd命令,改变当前的工作目录
  2. 单片机位寻址举例_单片机的寻址方式
  3. SDCC 2016数据库峰会(深圳站)学习笔记
  4. 必须使用列别名命名此表达式_lambda表达式
  5. 计算机网络(三)-体系结构
  6. Highcharts的使用
  7. 用$.getJSON() 和$.post()获取第三方数据做页面 ——惠品折页面(1)
  8. 存储系统的三种分类及KV模型
  9. python include目录,python pip指定库目录和include目录
  10. 关于电感开始饱和,开关过应力时开关的电流曲线的解释// 《精通开关电源设计》P53 图2-7
  11. FAL风控策略分析师怎么样?
  12. 【医疗图像分割】Deep neural networks for the detection and segmentation of the retinal fluid in OCT images.
  13. jqwidgets技术分享
  14. 电脑时常断网和掉线的解决方法
  15. excel从身份证号码中获取邮编信息?
  16. Eclipse安装STS
  17. android wifi布局,Android使用 WiFi 建立 P2P 连接
  18. js基础-小案例歌词匹配
  19. 【论文阅读】【CVPR2022】Contrastive Learning of Class-agnostic Activation Map
  20. A.5 实验5:课程列表

热门文章

  1. BootstrapTable单元格宽度调整:colResizable()方法
  2. c++ 全局变量_专业解码 | 带你了解Python全局变量与局部变量!
  3. docker安装启动mysql5.6_mysql5.6在ubuntu下的docker中安装的方法详解
  4. android获取电量的方法,在Android中获取电池电量和状态
  5. LeetCode 59. 螺旋矩阵 II(python、c++)
  6. 官网MySQL下载速度慢的解决方法(5分钟内搞定)
  7. TorchNet的学习笔记
  8. 《深度学习》————NN网络是否可以拟合任何一种函数
  9. leetcode41. First Missing Positive
  10. Idea导出可运行Jar包