[LibTorch] 指定参数不进行学习
出于不同的目的,希望固定预训练网络的某一些卷积层不进行参数的学习。
文章目录
- 整个网络不进行参数学习
- 某一个 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] 指定参数不进行学习相关推荐
- 受用一生的高效 PyCharm 使用技巧(二)pycharm 指定参数运行文件
https://mp.weixin.qq.com/s/Ii0-qHUXayTPb-K-17hmQQ 在介绍技巧之前,有些话想声明一下,这个系列的一些小技巧,对于一些重试用户来说可能是小 case,如果 ...
- 卷积神经网络(CNN)张量(图像)的尺寸和参数计算(深度学习)
卷积神经网络(CNN)张量(图像)的尺寸和参数计算(深度学习) 分享一些公式计算张量(图像)的尺寸,以及卷积神经网络(CNN)中层参数的计算. 以AlexNet网络为例,以下是该网络的参数结构图. A ...
- R语言ggplot2可视化:ggplot2可视化使用labs函数为可视化图像添加(caption)图片说明文字、theme_bw中指定参数base_size来改变图片说明文字、轴标签等的大小
R语言ggplot2可视化:ggplot2可视化使用labs函数为可视化图像添加(caption)图片说明文字.theme_bw中指定参数base_size来改变图片说明文字.轴标签等的大小 目录
- 内核参数 linux dd,内核模块指定参数方式
内核模块的参数传递方式很多,第一次尝试仅仅介绍了 指定普通类型和数组类型 内核模块指定参数方式 定义内核参数变量 普通变量 : module_param(变量名,变量类型,访问许可掩码) 数组变量 : ...
- Matlab对指定参数的曲线进行非线性拟合
Matlab拟合曲线的方式 Matlab拟合曲线的方式有很多种,有三次样条插值.线性插值.多项式拟合等等.多项式拟合由于函数由f(x)=anxn+an−1xn−1+...+a1x+a0f(x)=a_n ...
- 获取url中的参数方法,避免#的干扰,删除url指定参数(vue hash模式 有#删除指定参数问题)
function urlParse() {let url = window.location.search;let obj = {};let reg = /[?&][^?&]+=[^? ...
- c语言学习笔记【结构体02】结构体指针变量与结构体变量的函数参数,C语言学习笔记结构体02结构体指针变量与结构体变量的函数参数.docx...
C 语言学习笔记[结构体02]结构体指针变量与结构体变量 的函数参数 C 语言学习笔记之结构体指针变量一提指针,那可 是 C 语言的核心了,有多少学子曾拜倒在指针的脚下.单纯的说指针,其实并不难,但是 ...
- 【笔记】微信开发者工具自定义编译模式(编译时,携带 指定参数 直接跳转 指定页面)
文章目录 问题 解决 问题 发现这个神奇功能之前,一般都是在 app.json 下 pages 里将当前页面置顶,参数写死... 或是,什么都不做,繁琐的一级一级的点,直到从首页进入需要调试页面... ...
- Uniapp URL地址栏获取指定参数
前言 Uniapp在URL中的参数会存在于两种位置,如下: http://localhost:8080/unipp?id=399#/pages/index/index?name=eagle ...
最新文章
- linux改变工作目录命令,linux命令:cd命令,改变当前的工作目录
- 单片机位寻址举例_单片机的寻址方式
- SDCC 2016数据库峰会(深圳站)学习笔记
- 必须使用列别名命名此表达式_lambda表达式
- 计算机网络(三)-体系结构
- Highcharts的使用
- 用$.getJSON() 和$.post()获取第三方数据做页面 ——惠品折页面(1)
- 存储系统的三种分类及KV模型
- python include目录,python pip指定库目录和include目录
- 关于电感开始饱和,开关过应力时开关的电流曲线的解释// 《精通开关电源设计》P53 图2-7
- FAL风控策略分析师怎么样?
- 【医疗图像分割】Deep neural networks for the detection and segmentation of the retinal fluid in OCT images.
- jqwidgets技术分享
- 电脑时常断网和掉线的解决方法
- excel从身份证号码中获取邮编信息?
- Eclipse安装STS
- android wifi布局,Android使用 WiFi 建立 P2P 连接
- js基础-小案例歌词匹配
- 【论文阅读】【CVPR2022】Contrastive Learning of Class-agnostic Activation Map
- A.5 实验5:课程列表
热门文章
- BootstrapTable单元格宽度调整:colResizable()方法
- c++ 全局变量_专业解码 | 带你了解Python全局变量与局部变量!
- docker安装启动mysql5.6_mysql5.6在ubuntu下的docker中安装的方法详解
- android获取电量的方法,在Android中获取电池电量和状态
- LeetCode 59. 螺旋矩阵 II(python、c++)
- 官网MySQL下载速度慢的解决方法(5分钟内搞定)
- TorchNet的学习笔记
- 《深度学习》————NN网络是否可以拟合任何一种函数
- leetcode41. First Missing Positive
- Idea导出可运行Jar包