位置: 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)

  • 中小卖家网店精准营销离你有多远?(中小卖家应该报名哪些淘宝活动)

    中小卖家网店精准营销离你有多远?(中小卖家应该报名哪些淘宝活动)

  • vivox70pro+怎么关闭自动更新(vivox70pro+怎么关电视)

    vivox70pro+怎么关闭自动更新(vivox70pro+怎么关电视)

  • 苹果双击锁屏怎么设置(苹果双击锁屏怎么取消)

    苹果双击锁屏怎么设置(苹果双击锁屏怎么取消)

  • 手机摄像头玻璃碎了可以换的吗(手机摄像头玻璃是什么材质)

    手机摄像头玻璃碎了可以换的吗(手机摄像头玻璃是什么材质)

  • 小米手机流量校正失败怎么回事(小米手机流量校正指令是什么)

    小米手机流量校正失败怎么回事(小米手机流量校正指令是什么)

  • 抖音观看历史在哪里(抖音观看历史在哪里打开最多保存多久视频)

    抖音观看历史在哪里(抖音观看历史在哪里打开最多保存多久视频)

  • qq明明赞了对方不显示(qq明明赞了对方不显示名片)

    qq明明赞了对方不显示(qq明明赞了对方不显示名片)

  • 淘宝知道昵称怎么找人(知道淘宝昵称了怎么添加他好友)

    淘宝知道昵称怎么找人(知道淘宝昵称了怎么添加他好友)

  • i75500u相当于几代i5(i75500u相当于几代i3)

    i75500u相当于几代i5(i75500u相当于几代i3)

  • soul账号会被自动解封吗(soul会无缘无故封号吗)

    soul账号会被自动解封吗(soul会无缘无故封号吗)

  • b450支持win7吗(b450可以用win7吗)

    b450支持win7吗(b450可以用win7吗)

  • qq充值记录怎么删除不了(qq充值记录怎么隐藏)

    qq充值记录怎么删除不了(qq充值记录怎么隐藏)

  • 路由器访客网络要开启还是不开启(路由器访客网络会影响主人网络么)

    路由器访客网络要开启还是不开启(路由器访客网络会影响主人网络么)

  • qq扩列怎么无限匹配(qq扩列无限加人教程)

    qq扩列怎么无限匹配(qq扩列无限加人教程)

  • 在机器语言中只有什么符号(机器语言可以在任何机器上执行吗)

    在机器语言中只有什么符号(机器语言可以在任何机器上执行吗)

  • 红米note8怎么隐藏刘海(红米note8怎么隐藏应用)

    红米note8怎么隐藏刘海(红米note8怎么隐藏应用)

  • ios13静音未知来电在哪里设置(苹果静音未知来电怎么没用了)

    ios13静音未知来电在哪里设置(苹果静音未知来电怎么没用了)

  • 苹果无线耳机怎么上一曲(苹果无线耳机怎么调音量大小)

    苹果无线耳机怎么上一曲(苹果无线耳机怎么调音量大小)

  • vivos1微信视频美颜怎么弄(vivos1微信视频美颜在哪里)

    vivos1微信视频美颜怎么弄(vivos1微信视频美颜在哪里)

  • 问卷星可以重复填写吗(问卷星可以重复作答吗)

    问卷星可以重复填写吗(问卷星可以重复作答吗)

  • 华为stkal00是什么型号(华为stkal00什么型号手机)

    华为stkal00是什么型号(华为stkal00什么型号手机)

  • 探探卸载后还能刷到吗(探探卸载后还能不能看到距离)

    探探卸载后还能刷到吗(探探卸载后还能不能看到距离)

  • 小米9水滴形状设置(更新后的小米9水滴屏在哪里设置?)

    小米9水滴形状设置(更新后的小米9水滴屏在哪里设置?)

  • iphonex绿屏闪烁(iphonex绿屏闪烁怎么办)

    iphonex绿屏闪烁(iphonex绿屏闪烁怎么办)

  • 买显示器要注意什么(买显示器要注意什么问题)

    买显示器要注意什么(买显示器要注意什么问题)

  • excel如何批量合并单元格(Excel如何批量合并各科成绩)

    excel如何批量合并单元格(Excel如何批量合并各科成绩)

  • 准备搞个大动作!(准备动作怎么做)

    准备搞个大动作!(准备动作怎么做)

  • 现代服务税目包含哪些
  • 分公司与总公司的法律关系
  • 卖废品开发票开什么货物名称
  • 合作社免税收入需要成本吗?
  • 转出未交增值税是借方还是贷方
  • 报废过期产品怎么做会计分录
  • 土增税清算地下室怎么扣除
  • 上缴财政收入怎么做账
  • 地产公司土地分摊方案
  • 进口增值税已付发票未到如何入账
  • 买了两个月社保能用多少医药费
  • 案例分析互联网巨头的战略计划
  • 足疗发票税点
  • 新企业的设立流程
  • 所有者权益类科目借贷方向
  • 如何不同版本复制粘贴
  • 税控盘不交服务费的后果
  • 2022年最新cpu天梯图手机
  • php glob
  • 利用的英文
  • 收到保险公司的车赔款会计分录怎么写
  • 增值税逾期申报情况说明
  • node-gyp版本
  • 从性能方面考虑的因素
  • 审核原始凭证应注意
  • LIO-SAM学习与运行测试数据集
  • php调用其他php
  • 增值税代扣代缴税率是多少
  • 专票如何申领
  • segment anything model模型 需要的配置
  • 卷积核步长公式
  • 反射dll
  • setsid命令
  • 入库税款异常怎么处理好
  • 现金盘盈盘亏怎么处理
  • 农业合作社需要交土地使用税吗
  • 增值税发票开具规定
  • 销售货物免税
  • wordpress site
  • python 复选框怎么设置
  • 织梦cms官网
  • 在建工程转入固定资产怎么做
  • 扣员工工作服费用合法吗?
  • 员工工资扣工作服押金怎么做账呢
  • 银行贷款是应付账款吗
  • 收到捐赠的账务处理和涉税处理
  • 计提医疗保险费的会计分录
  • 流动性比率过小什么意思
  • 废品损失是什么要素
  • 企业一般户怎么查询
  • 原材料可以不设明细吗?
  • 发票勾选认证成功了是不是就可以抵扣呀
  • 同期增长率如何计算
  • sql的数据操作
  • sqlserver增删改查执行语句
  • sql的常用函数
  • fat32转换为ntfs分区命令
  • bios里没有启动项设置
  • win7开机过程中黑屏
  • win7系统更改ip地址
  • smagent.exe - smagent是什么进程
  • centos7搜索
  • U盘写保护怎么处理
  • Skype.exe - Skype是什么进程 有什么用
  • linux的批处理
  • Win10 Mobile 10586.107怎么更新?Lumia950/XL/550可升级
  • 利用python进行
  • linux的关闭命令
  • cad cl命令在哪里
  • apk签名生成器
  • [置顶]津鱼.我爱你
  • 从零开始学什么
  • unity安装进度条不动
  • js表单事件有哪些
  • dom4j解析xml字符串步骤
  • WINDOWS中使用磁盘清理的主要作用是为了什么
  • 工商注册和税务登记费用
  • 营业收入是含增值税的收入吗
  • 公寓限购是好事吗
  • 浅谈企业所得税论文
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设