位置: IT常识 - 正文

【Pytorch基础知识】数据的归一化和反归一化(pytorch基本操作)

编辑:rootadmin
【Pytorch基础知识】数据的归一化和反归一化

推荐整理分享【Pytorch基础知识】数据的归一化和反归一化(pytorch基本操作),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:学pytorch的基础,pytorch基本操作,pytorch入门到进阶,pytorch入门,pytorch基础教程,pytorch零基础,pytorch基础教程,pytorch详解,内容如对您有帮助,希望把文章链接给更多的朋友!

一张正常的图,或者说是人眼习惯的图是这样的:

但是,为了神经网络更快收敛,我们在深度学习网络过程中通常需要将读取的图片转为tensor并归一化(此处的归一化指transforms.Normalize()操作)输入到网络中进行系列操作。

如果将转成的tensor再直接转为图片,就会变成下图,和我们眼睛看到是不一样感觉。

这是因为,将图片转为tensor并归一化,tensor之中会有负值,和我们正常看到的是不一样的,如果不进行反归一化到 [0,1],就会变成下图,会觉得变扭。

我们正常看到的图片tensor是[0,255]或者[0,1]

解释:transforms.Normalize()归一化后的图像,满足均值为0方差为1,被限定在一定的数值内,一般的数值为[-1,1]。

这个过程中,我们需要进行如下操作,才能把图片转为tensor操作再转为图片(人眼习惯的)。这里的tensor操作是transforms系列操作。

【Pytorch基础知识】数据的归一化和反归一化(pytorch基本操作)

归一化的目的:使得预处理的数据被限定在一定的范围内,从而消除奇异样本数据导致的不良影响。数据归一化处理后,可以加快梯度下降求最优解的速度,且有可能提高精度(如KNN)。

反归一化的目的:为了还原原来人眼可以识别的图。

归一化

一幅图片的格式为【批数据的数量× 通道数× 高× 宽】:

接下来开始计算mean 和 std: 

nb_samples = 0#创建3维的空列表channel_mean = torch.zeros(3)channel_std = torch.zeros(3)print(image.shape)N, C, H, W = image.shape[:4]image = image.view(N, C, -1) #将w,h维度的数据展平,为batch,channel,data,然后对三个维度上的数分别求和和标准差print(image.shape)#展平后,w,h属于第二维度,对他们求平均,sum(0)为将同一纬度的数据累加channel_mean += image.mean(2).sum(0) #展平后,w,h属于第二维度,对他们求标准差,sum(0)为将同一纬度的数据累加channel_std += image.std(2).sum(0)#获取所有batch的数据,这里为1nb_samples += N#获取同一batch的均值和标准差channel_mean /= nb_sampleschannel_std /= nb_samplesprint(channel_mean, channel_std)

然后利用transforms.Normalize 进行转换:

normalizer = transforms.Normalize(mean=channel_mean, std=channel_std)# 归一化后得到可处理的值data = normalizer(image)反归一化

根据归一化计算得到的mean和std,我们可以反推出反归一化的 mean 和 std,从而利用 transforms.Normalize 进行转换,计算方法如下:

MEAN是指归一化时计算出来的均值,de_MEAN是计算出来反归一化的均值,后面需要用。

综合上面的讲解及代码,整合最后的代码为下:

# 定义一个image图像,torch.Size([1, 3, 319, 256])image = torch.rand([1,3,319,256])# 计算原图的 mean 和stdnb_samples = 0#创建3维的空列表channel_mean = torch.zeros(3)channel_std = torch.zeros(3)print(image.shape)N, C, H, W = image.shape[:4]#将w,h维度的数据展平,为batch,channel,data,然后对三个维度上的数分别求和和标准差image = image.view(N, C, -1) print(image.shape)#展平后,w,h属于第二维度,对他们求平均,sum(0)为将同一纬度的数据累加channel_mean += image.mean(2).sum(0) #展平后,w,h属于第二维度,对他们求标准差,sum(0)为将同一纬度的数据累加channel_std += image.std(2).sum(0)#获取所有batch的数据,这里为1nb_samples += N#获取同一batch的均值和标准差channel_mean /= nb_sampleschannel_std /= nb_samplesprint(channel_mean, channel_std)# 这是归一化的 mean 和std channel_mean = torch.tensor([-0.5321, -0.8102, -0.5532])channel_std = torch.tensor([1.2582, 1.0009, 0.9211])# 这是反归一化的 mean 和std MEAN = [-mean/std for mean, std in zip(channel_mean, channel_std)]STD = [1/std for std in channel_std]# 归一化和反归一化生成器normalizer = transforms.Normalize(mean=channel_mean, std=channel_std)denormalizer = transforms.Normalize(mean=MEAN, std=STD)# 归一化得到可处理的值data = normalizer(image)# 反归一化得到原图image2 = denormalizer(data)

image ≈ image2

因为浮点数计算有误差,所以不会完全一样,但是问题不大~

 这样就可以得到tensor转换后的原图了。

好了,大功告成,完结撒花!

欢迎关注、点赞、收藏、评论、分享给好友,一起学习有趣的新知识!!! 

本文链接地址:https://www.jiuchutong.com/zhishi/297335.html 转载请保留说明!

上一篇:原生js获取元素的各种位置(大全)(原生js获取元素高度)

下一篇:vue中Number方法将字符串转换为数字(vue的number)

  • OPPOFindX3安兔兔跑分是多少(oppo find x安兔兔)

    OPPOFindX3安兔兔跑分是多少(oppo find x安兔兔)

  • 微星万图师和魔龙区别(微星万图师和魔龙哪个好)

    微星万图师和魔龙区别(微星万图师和魔龙哪个好)

  • 华为手机语音助手在哪里删除(华为手机语音助手怎么打开唤醒)

    华为手机语音助手在哪里删除(华为手机语音助手怎么打开唤醒)

  • 拼多多缺货处理是什么(拼多多缺货处理了 无法发货)

    拼多多缺货处理是什么(拼多多缺货处理了 无法发货)

  • 华为mate30pro快充怎么开(华为mate30pro快充协议)

    华为mate30pro快充怎么开(华为mate30pro快充协议)

  • 手提电脑和笔记本电脑的区别(手提电脑和笔记本电脑哪个好用)

    手提电脑和笔记本电脑的区别(手提电脑和笔记本电脑哪个好用)

  • ipad更新系统要多久(ipad更新系统要关机吗)

    ipad更新系统要多久(ipad更新系统要关机吗)

  • 云闪付功能介绍(云闪付详细介绍)

    云闪付功能介绍(云闪付详细介绍)

  • 开发者选项长期开启会怎样(开发者选项长期开启有什么危害)

    开发者选项长期开启会怎样(开发者选项长期开启有什么危害)

  • qq怎么设置字体样式(qq怎么设置字体颜色)

    qq怎么设置字体样式(qq怎么设置字体颜色)

  • 手机感光坏了有什么影响(手机感光器坏了会出现什么情况)

    手机感光坏了有什么影响(手机感光器坏了会出现什么情况)

  • 举报成功有提示信息吗(举报成功后对方会怎样)

    举报成功有提示信息吗(举报成功后对方会怎样)

  • 快手收藏的表情为什么会没有(快手收藏的表情包在哪里找)

    快手收藏的表情为什么会没有(快手收藏的表情包在哪里找)

  • 内存条的特点(内存条主要特征)

    内存条的特点(内存条主要特征)

  • 数据库系统阶段有什么特点(数据库系统阶段,数据具有一定的______和高度的)

    数据库系统阶段有什么特点(数据库系统阶段,数据具有一定的______和高度的)

  • 钉钉群主退出后谁是群主(钉钉群主退出后谁会成为新群主)

    钉钉群主退出后谁是群主(钉钉群主退出后谁会成为新群主)

  • 微信语音删了能恢复吗(微信语音删除后能不能恢复)

    微信语音删了能恢复吗(微信语音删除后能不能恢复)

  • 企业微信怎么申请(企业微信怎么申请注销)

    企业微信怎么申请(企业微信怎么申请注销)

  • 苹果手机怎么删除软件(苹果手机怎么删除app和卸载app的区别)

    苹果手机怎么删除软件(苹果手机怎么删除app和卸载app的区别)

  • 淘宝的销量是真实的吗(淘宝上面销量都是真实的吗?)

    淘宝的销量是真实的吗(淘宝上面销量都是真实的吗?)

  • 快手误删除作品咋恢复(删除快手作品还能找回吗)

    快手误删除作品咋恢复(删除快手作品还能找回吗)

  • 淘宝在哪里看几颗星(淘宝在哪里看几钻)

    淘宝在哪里看几颗星(淘宝在哪里看几钻)

  • 问卷星重新填写会覆盖吗(问卷星重新填写之前提交的还在吗)

    问卷星重新填写会覆盖吗(问卷星重新填写之前提交的还在吗)

  • 华为型号stf_al10(华为型号STK-AL00)

    华为型号stf_al10(华为型号STK-AL00)

  • 小米手机怎么和vivo一键换机(小米手机怎么和平板连接)

    小米手机怎么和vivo一键换机(小米手机怎么和平板连接)

  • win10没有wifi选项(win10没有wifi选项怎么办)

    win10没有wifi选项(win10没有wifi选项怎么办)

  • 计算本月所得税税率为25%
  • 房开企业涉及哪些税种
  • 背书承兑分录
  • 先到发票后到商品怎么入账
  • 累计折旧影响所得税费用吗
  • 投资子公司亏损如何入账
  • 往期附加税申报错误更正后怎么退税
  • 建筑企业购进免税苗木1000元
  • 增值税专用发票可以开电子发票吗
  • 贷款逾期的本金怎么计算
  • 股权转让如何避免土地增值税
  • 职工基本医疗保险单位交的钱去哪里了
  • 研发支出是什么性质的科目
  • 资产的税务处理要注意什么
  • 预估材料入账后冲回的步骤
  • 独立核算分公司可以享受小型微利企业优惠吗
  • 境内企业向香港股东分红税率是多少
  • 小规模建筑工程
  • 持续经营净利润和扣非净利润
  • 会计行业新技术
  • 单位低价向职工售房个人所得税计算
  • 当月开发票收到货款会计应该以什么为做账凭证?
  • 金蝶软件测试笔试题及答案
  • 补交去年的企业所得税怎么做账务处理
  • 免征的农资增值税怎么算
  • 一般纳税人取得普票会计分录
  • vue父组件调用子组件的方法报错
  • PHP:proc_get_status()的用法_命令行函数
  • 海关滞报金可以税前扣除吗 江苏
  • 转让存货属于什么收入
  • 将资本公积转为实收资本什么变了
  • vue前端怎么运行
  • torch测定
  • vue中computed和watch
  • 深度卷积神经网络基本结构
  • 人工智能能否在证券市场取得额外收益
  • chattra
  • 进项转出了还能再转进去吗
  • phpcms api
  • 登记会计账簿的实训总结
  • 长期待摊费用最低摊销年限
  • 简单的记账方法叫什么
  • 企业电子发票申请流程2023版
  • 小微企业所得税税收优惠政策2023年
  • sqlserver服务请求失败或服务未及时响应
  • 金税盘维护费发票
  • 工程施工与工程结算账务处理
  • 购进固定资产的账务处理
  • 外币报表折算差额可以转损益吗
  • 公司注销后会计档案可以销毁吗
  • 银行金融手续费收费标准
  • 坏账准备的计提分录
  • 利息保障倍数为0说明什么
  • 委托加工应税消费品纳税义务发生时间
  • 年末本年利润没有结转影响报税吗
  • 销售费用怎么考核
  • 中央空调的维护费一年要多少钱?
  • 如何登记现金日记账视频
  • 会计当期损益指什么
  • 扩展什么
  • Windows Server 2008的NPS策略应用
  • QQPCTray.exe是什么进程 QQPCTray.exe文件介绍
  • win8 设置
  • 微软 系统设计
  • 晚上睡觉艾草贴肚脐
  • cocos2d安装教程
  • ubuntu列出用户
  • javascript类的继承
  • Android spinner 的使用
  • 安卓中的HTTP编程
  • 用shell写一个脚本,对文本中无序的一列数字排序
  • json转复杂对象
  • unity怎么添加ui界面图片
  • 技术开发类工作有哪些
  • jquery checkbox无法用attr()二次勾选问题的解决方法
  • swift协议范型
  • android设计模式单例有几种
  • 郑州地方税务局网站官网
  • 建筑一般纳税人开3%
  • 美国海外公司每年利润
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设