5.11总结:train/eval/BN、CNN与特征图、极大似然与EM、方差n与n-1(有偏估计/无偏估计)

news2025/1/11 0:47:16

目录

  • 1.关于模型的train/eval与batchnorm
    • 1-1.理论
    • 1-2.实际运用(包含loss反向传播)
  • 2.CNN详解,特征图是什么
    • CNN处理过程
    • 特征图(也叫通道)(num_features)
    • 总结(包含CNN图片的规律分析):
  • 3.极大似然估计与EM最大期望
  • 4.方差的n与n-1(有偏估计与无偏估计)

1.关于模型的train/eval与batchnorm

1-1.理论

model.train()

  • 启用 BatchNormalization 和 Dropout

model.eval()

  • 不启用 BatchNormalization 和 Dropout.
  • 框架会自动把 BN 和 DropOut 固定住,不会取平均,而是用训练好的值,不然的话,一旦test的batch_size过小,很容易就会被BN层导致生成图片颜色失真极大!
  • 如果不加model.eval(),有输入数据,即使不训练,它也会改变权值。这是model中含有batch normalization层所带来的的性质(虽然看源码没看出来)。

BN详解

  • BN是将每个通道进行标准化(变为标准正态分布),单位为一个batch批次的一个通道,例如若数据大小为(batch, C, W, H)则求平均后的大小为©;然后可以进行affine,即对标准化的数据进行* weight和+ bias。参考与代码:深入理解Pytorch的BatchNorm操作(含部分源码)
  • 为什么要进行BN:BatchNorm就是在深度神经网络训练过程中使得每一层神经网络的输入保持相同分布,经过BN后,大部分Activation的值落入非线性激励函数(如tanh)的线性区内,其对应的导数远离导数饱和区,这样来加速训练收敛过程。参考:整理学习之Batch Normalization(批标准化)
  • 为什么有scale和shift操作(对应* weight和+ bias):BN使得数据集中分布在了激活函数的线性部分,需要再用一个反操作来在一定程度下抵消这个线性化。参考:整理学习之Batch Normalization(批标准化)

1-2.实际运用(包含loss反向传播)

模型进行train的步骤(以毕设中face_enhance为例):

  • model.train()将BN和droupout激活,好像不一定要用,而且模型中不一定有BN
  • 设置G和D的optim,包含了训练的参数,分别为G和D的参数
  • model计算各种loss,并将loss分为G和D的loss
  • 对G训练
g_opt.zero_grad()
gen_loss.backward()
g_opt.step()
  • 对D训练和上面一样

模型进行eval的步骤

  • model.eval(),好像不一定要用
  • torch.no_grad()
  • 没咋看了

2.CNN详解,特征图是什么

CNN处理过程

  • 输入为7×7×3(意思是(7×7)×3),最后一维3表示图像颜色通道
  • Filter为3×3×3(意思是(3×3)×3),那么这里的卷积核大小为3×3
  • 需要注意的是输入的最后一维(3)要和Filter的最后一维(3)保持一致
  • 计算方式为: 每一个对应位置相乘,最终结果相加,最后不要忘记加上偏置项
  • 所以,如果前面层特征图数量为3,则每个卷积有3层,即大小为(n*n)*3
    在这里插入图片描述
    上图来源

特征图(也叫通道)(num_features)

  • 每个层中矩阵(n*n)的个数
  • 比如图上输入有3个特征图,由于有2个filter所以输出为2个特征图
  • 所以有多少filter就有多少特征图,比如以下VGG网络
    在这里插入图片描述
    上图来源

总结(包含CNN图片的规律分析):

  • 特征图即为通道,特征图数 = 通道数 = 每一层矩阵数 = 前一层filter数,特征图数一般写在每层输出大小的第3维(如上vgg图左 224 * 224 * 64),写在convx-的后面(如图上vgg图右conv3-64),写在 @的前面(如图下8@28*28)在这里插入图片描述
    上图来源
  • 一般图中,写的都是输出的维度,而不是filter(如vgg图左224 * 224 * 64),有可能写在开头(如上图6@28*28);一般表中,写的都是filter(如vgg图右conv3-64)。这可能是因为,图是具体例子,而表是网络结构
  • pool层如果没有参数则不算在总层数内(如vgg-16中不算pool)而conv和fc有可训练参数所以算在层数内(如vgg-16中仅conv+fc有16层)
  • 一个filter的参数数 = 输入/前一层特征图数 * 一个filter的大小(即n*n)+ 1个bias = 输入特征数 * (n * n) + 1;一层conv的所有filter的参数总数 = 一个filter的参数数 * 该层总filter数

3.极大似然估计与EM最大期望

  • 极大似然估计是已知数据和数据分布模型,求模型参数使模型最可能出现已有结果的问题。对于不同问题使用的求参数方法不同,比如对于参数少的,只有p的模型,可以直接求导;参数多的显然不能直接求导,还有EM最大期望等方法。
  • EM是迭代使用极大似然估计的方法,比如求混合高斯模型的参数时,看参考链接的方法

4.方差的n与n-1(有偏估计与无偏估计)

  • n组独立同分布数据Xi相加后方差为原方差n倍,即 V a r ( ∑ X i ) = ∑ ( V a r ( X i ) ) = n σ 2 Var(∑X_i)=∑(Var(X_i))=nσ² Var(Xi)=(Var(Xi))=nσ2在下面橙色的公式中用到,参考链接:独立同分布相加的方差
  • 为何样本方差的无偏估计的分母为n-1,参考链接:彻底理解样本方差为何除以n-1
    在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/515040.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot基础篇3(SpringBoot+Mybatis-plus案例)

环境搭建&#xff1a;配置起步依赖pom.xml和配置文件application.yml 1.创建模块时&#xff0c;勾选的依赖有springMVC和MySQL驱动 2.手动添加的依赖有&#xff1a;MyBatis-plus、Druid、lombok <dependencies><dependency><groupId>org.springframework.…

Java笔记_20(多线程JUC)

一、多线程 1.1、多线程概述 进程 进程是程序的基本执行实体 线程 线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中&#xff0c;是进程中的实际运作单位。简单理解:应用软件中互相独立&#xff0c;可以同时运行的功能 什么是多线程? 有了多线程&#xf…

SpringBoot整合JPA

JPA、Hibernate、Spring Data JPA的关系 JPA是Java Persistence API的简称&#xff0c;中文名Java持久层API&#xff0c;是JDK 5.0注解或XML描述对象&#xff0d;关系表的映射关系&#xff0c;并将运行期的实体对象持久化到数据库中。Sun引入新的JPA ORM规范出于两个原因&…

从零入门激光SLAM(九)——三维点云基础

大家好呀&#xff0c;我是一个SLAM方向的在读博士&#xff0c;深知SLAM学习过程一路走来的坎坷&#xff0c;也十分感谢各位大佬的优质文章和源码。随着知识的越来越多&#xff0c;越来越细&#xff0c;我准备整理一个自己的激光SLAM学习笔记专栏&#xff0c;从0带大家快速上手激…

新品发布全线添员,九号全力奔向“红海”深处?

5月10日&#xff0c;九号公司2023新品发布会声势达到顶峰。此次发布会的看点为九号电动2023产品线的更新&#xff0c;电动家族再添多员大将。 随着人们出行选择的多样化&#xff0c;国内短途出行工具发展迎来井喷期。在传统的电动两轮车市场上&#xff0c;雅迪、爱玛等品牌仍然…

基于java(springboot)和go-cqhttp实现QQ机器人

目录 yh-qqrobot机器人简介go-cqhttp搭建1.下载应用2.生成bat文件3. 初始化项目4. 配置5. 运行项目 yh-qqrobot搭建搭建后端1. 导入sql文件2. 配置文件3. 导入到idea 搭建前端 yh-qqrobot机器人简介 yh-qqrobot是一个基于若依框和go-cqhttp集成的系统&#xff0c;一开始我只是揣…

生成一个简版导游地图

目录 1 简版导游地图功能简介 2 注册并登录 3 设置景区&#xff08;商圈&#xff09;地图 3.1 新增景区 3.2 增加一个景点介绍 3.3 地图中增加一个景点 3.4 增加几个其他类型的点&#xff0c;如“美食”、“购物”、“停车” 4 申请审核 5 欣赏一下 1 简版导游地图功能…

【python 异常处理】零基础也能轻松掌握的学习路线与参考资料

Python 异常处理是编写高质量、功能稳定程序的关键之一&#xff0c;它可以帮助开发者优化程序的稳定性和可读性&#xff0c;更好地管理代码的错误和异常情况。 本文将介绍 Python 异常处理的学习路线、参考资料和优秀实践&#xff0c;以帮助 Python 开发者提高应对程序中错误和…

华为OD机试真题 Java 实现【微服务的集成测试】【2023Q1 100分】

一、题目描述 现在有n个容器服务&#xff0c;服务的启动可能有一定的依赖性&#xff08;有些服务启动没有依赖&#xff09;&#xff0c;其次服务自身启动加载会消耗一些时间。 给你一个 nxn 的二维矩阵 useTime&#xff0c;其中 useTime[i][i]10 表示服务 i 自身启动加载需要消…

十大排序算法

1.冒泡排序 步骤:从头元素开始比较每一对相邻元素&#xff0c;如果第1个比第2个大&#xff0c;就交换它们的位置&#xff0c;执行完一轮&#xff0c;最末尾的那个元素就是最大的元素 1.1冒泡算法 void BubbleSort(int arr[], size_t length) {for (int end length-1; end &…

.netcore3.1+jenkins+Docker

一.git安装 1.下载 https://github.com/git/git/releases/tag/v2.40.1 2.将本地的安装包上传到 linux 服务器上&#xff0c;我这里放在 /opt/git/ 目录下 3.解压压缩包&#xff0c;得到目录 git-2.40.1&#xff0c;位置在 /opt/git/git-2.40.1 tar -zxvf git-2.40.1.tar.gz 4.…

AIGC产业研究报告2023——视频生成篇

易观&#xff1a;今年以来&#xff0c;随着人工智能技术不断实现突破迭代&#xff0c;生成式AI的话题多次成为热门&#xff0c;而人工智能内容生成&#xff08;AIGC&#xff09;的产业发展、市场反应与相应监管要求也受到了广泛关注。为了更好地探寻其在各行业落地应用的可行性…

【1++的C++初阶】之类与对象

&#x1f44d;作者主页&#xff1a;进击的1 &#x1f929; 专栏链接&#xff1a;【1的C初阶】 文章目录 一&#xff0c;面向对象与面向过程二&#xff0c;类2.1 类的定义2.2 类的访问限定符2.3 封装2.3.1 什么是封装2.3.2 封装的作用 2.4 类与对象 三&#xff0c;this指针3.1 什…

Docker 应用部署-MySQL

一、安装MySQL 1搜索mysql镜像 docker search mysql 2拉取mysql镜像 docker pull mysql:8.0.20 3创建容器 通过下面的命令&#xff0c;创建容器并设置端口映射、目录映射 #在用户名目录下创建mysql目录用于存储mysql数据信息 mkdir /home/mysql cd /home/mysql #创建docker容…

【数据结构】[LeetCode138. 复制带随机指针的链表]

一.问题描述 给你一个长度为 n 的链表&#xff0c;每个节点包含一个额外增加的随机指针 random &#xff0c;该指针可以指向链表中的任何节点或空节点。 构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成&#xff0c;其中每个新节点的值都设为其对应的原节点的值…

5。STM32裸机开发(1)

嵌入式软件开发学习过程记录&#xff0c;本部分结合本人的学习经验撰写&#xff0c;系统描述各类基础例程的程序撰写逻辑。构建裸机开发的思维&#xff0c;为RTOS做铺垫&#xff08;本部分基于库函数版实现&#xff09;&#xff0c;如有不足之处&#xff0c;敬请批评指正。 &a…

ssm框架之SpringMVC:域共享数据

本篇主要聊的是在springmvc中的共享域传递数据的使用。如果对共享域可能不了解的话&#xff0c;可以看下前面聊servlet的时候&#xff0c;对共享域的详细描述&#xff0c;以及其作用和方法。传送阵 至于如何构建SpringMVC的环境&#xff0c;以及如何构建一个项目&#xff0c;可…

一款基于 Python+flask 的态势感知系统(附完整源码)

一、开发 一个基于linux的态势感知系统&#xff0c;基于python和flask框架开发&#xff0c;项目文件目录如下&#xff1a; admin -核心算法 charts -图表生成 model -类 app.py -主文件 config.py -配置文件 install.py -安装文件 项目文件在文章结尾处~ 二、安装 1、…

矩池云搭建DeepLabV3Plus网络,预测无人机遥感语义分割数据集

先上效果图&#xff0c;效果是真不错呀&#xff01; 带大家复现这个过程 一、下载源码 代码下载地址&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1MkW7DOgNHD5h5sfXQ6L1HA 提取码&#xff1a;ynev 权重下载地址&#xff1a; 链接&#xff1a;https://pan.bai…

Java - 欢迎使用spring中的Base64Utils!

&#x1f335;如果项目技术栈中包含spring&#xff0c;同时又有Base64编码的需求&#xff0c;那么Base64Utils工具类将会是你的最好选择&#xff01;⤵️ 什么是Base64编码&#xff1f;⤵️ 基本转换针对URL的转换 &#xff08;/替换为-_&#xff09; Base64Utils公开的AP…