pytorch-Normalization

目录

  • 1. 为什么Normalization
  • 2. Normalization
    • 2.1 image Normalization
    • 2.2 Batch Normalization
  • 3. Normalization pytorch实现
    • 3.1 Normalization标准公式
    • 3.2 2d normalization
    • 3.3 normalize test
  • 4. 使用normalization的好处

1. 为什么Normalization

下图使用sigmoid激活函数,该激活函数在超出一定范围的时候,梯度就变成了0,会出现梯度弥散的现象,因此不推荐使用sigmoid,但是某些情况下又不得不使用。
normalization是将输入转换为以0为均值以σ为方差的范围内,使得输入变成在0附近以很小的幅度变化,方便下一层进行优化。
在这里插入图片描述
在看下一幅图,其中前半部分x1和x2的值范围相差较大,在计算loss的时候,找到最优解会曲折一些,而后半部分x1和x2的值的范围相差不大,在计算loss的时候,找到最优解就会比较直接,更快一些。
因此使用normalization将输入转换的一个区间,有助于loss尽快找到最优解。
在这里插入图片描述

2. Normalization

2.1 image Normalization

在这里插入图片描述

2.2 Batch Normalization

Normalization有下图几种,这里只说Batch Normalization
假设H和W都说28,有3个通道和6个batch,那么就分别计算当前batch每个channel的均值和方差(channel0~channel2),最后输出结果是消掉batch和feature,有几个通道就有几个均值和方差,
在这里插入图片描述
下图中第一个公式使用当前batch的feature- mean/var 使得值变成[0,1]
第二个公式在第一个公式的基础上增加了一个γ倍数和偏置β,使得数据变为[β,γ]之间。
μ和σ是当前batch统计出来,不需要梯度,而β,γ是计算出来的是需要梯度信息的,在训练时还有一个running-μ和running-σ是历史统计,即之前所有batch的统计。
在这里插入图片描述

3. Normalization pytorch实现

3.1 Normalization标准公式

在这里插入图片描述

3.2 2d normalization

下图中的layer.weight就是γ,bias就是β
BatchNorm2d的参数必须与输入channel数一致,否则会报错。
在这里插入图片描述
打印normalize layer,信息可以看到running-μ和running-σ以及β,γ
affine参数决定了β,γ是否需要更新
加粗样式

3.3 normalize test

Normalization layer和drop out layer类似,train和test的行为是不一样的
具体表现为:

  • test可能就一个sample 所以是无法统计μ和σ的
  • μ和σ=running-μ和running-σ
  • test 没有back forward,因此β,γ是不需要更新的
    切换test模式使用layer.eval()函数
    在这里插入图片描述

4. 使用normalization的好处

  • 收敛更快
  • 更好获得最优解
  • 更稳定。在使用大leaning rate的时候震荡不会那么明感

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

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

相关文章

在线考试教学系统平台系统源码/视频教学系统PHP源码/在线考试系统PHP源码

源码介绍 在线考试教学系统平台系统源码,视频教学系统PHP源码,在线考试系统PHP源码。 安装 1、部署好网站环境:php5.6mysql 2、将源码传至网站根目录,php源码用二进制上传,或者上传压缩包在空间解压 3、将“zztuk…

【PPT】修改新建文本框默认字体

【PPT】修改新建文本框默认字体

物联边缘网关有哪些功能?物联边缘网关在工业方向的应用-天拓四方

随着物联网技术的快速发展,越来越多的设备和系统正在接入到网络中,形成了一个庞大的智能生态系统。在这个系统中,物联边缘网关扮演着至关重要的角色,它不仅是连接设备和云端的桥梁,更是推动智能应用落地的关键。在当今…

【题解】 AT_abl_e Replace Digits

祝大家六一儿童节快乐! 题目传送门 正文 看到区间查询区间修改,第一反应线段树。 线段树灵魂三问: 每个节点存什么? 当前这段区间表示的十进制数。 如何 p u s h _ u p push\_up push_up ? 左儿子 乘上 十的右儿…

【GD32】从零开始学GD32单片机高级篇——SDIO外设详解(GD32F470ZGT6)

目录 简介总线拓扑总线操作“无响应” 和 “无数据” 操作多块读写操作数据流读写操作 总线协议命令响应R1/R1b (普通命令响应)R2 (CID, CSD 寄存器)R3 (OCR 寄存器)R4 (Fast IO)R4b(Fast IO)R5 (中断请求)R5b(中断请求)R6 (发布的…

skywalking介绍及搭建

链路追踪框架比对: skywalking安装部署: 下载地址:Downloads | Apache SkyWalking 配置微服务与skywalking整合: copy agent/optional-plugins/apm-spring-cloud-getway-xx.jar到plugins,然后重启skywalking 监控界面…

会议管理系统(含源码+sql+视频导入教程)

👉文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1 、功能描述 会议管理系统拥有两种角色 管理员:部门管理、员工管理、会议管理、会议室管理、预订会议、添加员工、注册员工审批等 用户:个人通知中心、预订会议、查看所有会议…

fastAPI的实例

好的,下面是一个简单的 FastAPI 示例,展示了如何创建一个基本的 API 应用程序。这个示例将包括一个简单的 GET 和 POST 请求。 首先,确保你已经安装了 FastAPI 和 Uvicorn: pip install fastapi uvicorn然后,创建一个 Python 文件(例如 main.py),在其中编写以下代码:…

网络研究观-20240601

新战争时代的商业风险 美国人已经将战争视为遥远战场上发生的事件。然而,网络空间打破了这种看法,让全球战争的真正影响来到了美国家门口。 攻击不再局限于遥远的战场,而是在最意想不到的时间和地点发动袭击。 谁将主宰第五次工业革命&…

FreeSWITCH 1.10.10 简单图形化界面21-录音相关

FreeSWITCH 1.10.10 简单图形化界面21-录音相关 FreeSWITCH GUI界面预览00、安装FreeSWITCH GUI先看使用手册1、录音相关的应用11、record用法:举例:注意: 12、record_session用法:举例: 2、录音相关的变量3、单腿录音…

使用matplotlib绘制折线条形复合图

使用matplotlib绘制折线条形复合图 介绍效果代码 介绍 在数据可视化中,复合图形是一种非常有用的工具,可以同时显示多种数据类型的关系。在本篇博客中,我们将探讨如何使用 matplotlib 库来绘制包含折线图和条形图的复合图。 效果 代码 imp…

联合和枚举(自定义类型)

1.枚举(关键字:enum) 1.1枚举类型的声明 把可能的值一一列举 赋的值是可能取值 1.2枚举类型的优点 1)增加代码的可读性和可维护性 2)和#define定义的标识符比较枚举有类型检查,更加严谨 3)便于调试&a…

vue:实现丝滑上传进度条

一、效果展示 缓若江海凝清光 . 二、代码 const uploadProgress ref(); //上传进度//进度丝滑更新 //进度,时常 const ProgressChange (targetPercent: number, duration: number) > {//performance.now() 是浏览器提供的一个高性能时间 API,它返…

docker参数大P与小p的区别

大P -P用于随机映射一个49000-49900之间的端口到容器内部的网络端口。 小p -p可以指定具体的主机端口映射到容器内部的网络端口。 示例 随机映射主机端口到容器的80端口 docker run -P -d nginx指定主机的8080端口映射到容器的80端口 docker run -p 8080:80 -d nginx

对等连接的作用(网络)

概述 对等连接(Peering Connection,PC)是一种大带宽、高质量的云上资源互通服务,可以帮助您打通腾讯云上的资源通信链路。 对等连接具有多区域、多账户、多种网络异构互通等特点,轻松实现云上两地三中心、游戏同服等复…

Linux系统编程(七)网络编程TCP、UDP

本文目录 一、基础知识点1. IP地址2. 端口3. 域名4. 网络协议类型5. IP协议类型6. 字节序7. socket套接字 二、常用API1. socket套接字描述符2. bind套接字绑定3. listen设置客户端连接个数4. accept接收客户端请求5. connect连接服务端 三、编程流程1.TCP编程 在学习本章之前&…

《mysql轻松学习·二》

1、创建数据表 contacts:数据表名 auto_increament:自动增长 primary key:主键 engineInnoDB default charsetutf8; 默认字符集utf8,不写就默认utf8 对数据表的操作: alter table 数据表名 add sex varchar(1); //添…

异常处理。

异常 是指程序运行中出现了错误。 捕获异常: 对bug进行提醒,使整个程序继续运行。 捕获所有异常: try:#可能出错的代码 except:如果出现异常执行的代码 可以输出异常的类型: try:a1bhuishprint(ab) except Exception as i:…

python的range() 函数

range() 函数 《红楼梦》,又名《石头记》,实际上是一颗神石在人间游历的故事。而这块石头,就是我们的主人公贾宝玉。神石在投胎成宝玉前,向茫茫大士和渺渺真人讲起了自己的故事: 女娲氏炼石补天之时,于大…

使用YOLOv10训练自己的数据集

1. yolov10源码下载 THU-MIG/yolov10: YOLOv10: Real-Time End-to-End Object Detection (github.com)https://github.com/THU-MIG/yolov10?tabreadme-ov-file 2. 环境配置 预先安装好ANACONDA、PyCharm或者VSCode等基本软件。参考以下博客: 史上最全最详细的An…