注:在此之前transforms.ToTensor()已经把数据落在0、1区间了

比如原来的tensor是三个维度的,值在0到1之间,那么经过以下变换之后就到了-1到1区间。

transforms.Normalize((.5,.5,.5),(.5,.5,.5))

原本以为第一个参数应该是(0,0,0)才是归一化到均值为0。但是通过transforms的源码发现:

input[channel] = (input[channel] - mean[channel]) / std[channel]

也就是说((0,1)-0.5)/0.5=(-1,1)。

常见疑问

在pytorch的官方教程里,经常看到

normalize = T.Normalize(mean = [0.485, 0.456, 0.406], std = [0.229, 0.224, 0.225])

图片的RGB的范围不是[0,255]吗,那么图片的3个通道的像素值不应该是[0,255]吗?那么用这样的归一化参数怎么能归一化到[-1,1]呢?

解答

  • 第一种情况:就是在加载数据集的时候就已经将图片转换为[0,1],例如imageNet数据集就是在加载ImageNet的数据的时候就转换成[0,1]。

  • 第二种情况:应用了torchvision.transforms.ToTensor,其作用是

     ( Converts a PIL Image or numpy.ndarray (H x W x C) in the range [0, 255] to  a torch.FloatTensor of shape (C x H x W) in the range [0.0, 1.0] )
    

所以我们常常在代码中看到normallize在ToTensor之后

    "train": transforms.Compose([transforms.RandomResizedCrop(224),transforms.RandomHorizontalFlip(),transforms.ToTensor(),transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))]),

参考自:
春江明月

Transform的normalize参数含义相关推荐

  1. transforms.Compose,transforms.ToTensor(),transforms.Normalize()的含义与原理

    transforms.Compose,transforms.ToTensor(),transforms.Normalize()的含义与原理 1.问题描述 问题来源于pytorch实现CNN神经网络的示 ...

  2. Java Calendar.add()方法的使用,参数含义。指定时间差。

    cal.add()方法中的参数含义: 第一个参数如果是1则代表的是对年份操作,2是对月份操作,3是对星期操作,5是对日期操作,11是对小时操作,12是对分钟操作,13是对秒操作,14是对毫秒操作. 第 ...

  3. sklearn的train_test_split()各函数参数含义解释(非常全)

    sklearn的train_test_split()各函数参数含义解释(非常全) sklearn的train_test_split()各函数参数含义解释(非常全) - The-Chosen-One - ...

  4. python函数type的用意_Python中type的构造函数参数含义说明

    测试代码如下: 复制代码 代码如下: class ModelMetaClass(type): def __new__(cls,name,base,attrs): logging.info(" ...

  5. paip.提升效率--调试--日志系统日志参数含义---python

    paip.提升效率--调试--日志系统日志参数含义---python #同时向控制台和文件输出日志 #日志参数含义 import logging log_format = '%(filename)s ...

  6. OpenGL透视投影函数gluPerspective的参数含义之解析(图示)

    首先解释一下透视投影: **透视投影属于中心投影.**透视投影图简称为透视图或透视,它是从某个投射中心将物体投射到单一投影面上所得到的图形.透视图与人们观看物体时所产生的视觉效果非常接近,所以它能更加 ...

  7. 陶瓷气体放电管参数含义详解

    ​很多客户反应,不太明白陶瓷气体放电管产品手册中的参数含义.不可否认,电路保护器件产品规格书手册用的语言大部分都是英文,没有一定的英文基础,还真消化不了.有时候,就算能看得懂,但是面对枯燥无味的参数, ...

  8. GoldenGate 基本参数含义

    GoldenGate 基本参数含义 1. edit params命令 2. DBLOGIN USERID <user>, PASSWORD <password> 3. ADD ...

  9. cursor is oracle 日期_Oracle时间计算------日期格式参数含义说明

    Oracle时间计算------日期格式参数含义说明 D 一周中的星期几 DAY 天的名字,使用空格填充到9个字符 DD 月中的第几天 DDD 年中的第几天 DY 天的简写名 IW ISO标准的年中的 ...

最新文章

  1. 深蓝学院的深度学习理论与实践课程:第四章
  2. 数据可视化项目落地复盘
  3. U3D 扩展方法 Dotween tolua
  4. Bootstrap-模态框 modal.js
  5. 『收藏向 期末SSM课设救急』 教你从搭建到测试运行手撸一个SSM项目实战,附带源码,前端页面、解析和一般遇到的问题(排雷)
  6. 如何双启动Linux和Windows
  7. Html前端基础(form表单、img标签、a href标签、id的作用)
  8. 时隔25年重访 Linus:流量时代的“技术大师”
  9. dcp9020cdn可以打印a3纸吗_兄弟DCP-9020CDN打印机驱动(兄弟9020CDN打印机驱动程序)V1.0 正式版...
  10. 像玩乐高一样玩 simpletun
  11. CSDN 博客 美化 个性化
  12. 大数据生态与Spark简介
  13. 学术论文海报模板_论文深耕 | 第一次写学术论文无从下手?阅读写作套路来了!...
  14. 一文详解对称密钥加密
  15. .博弈论之Best Response
  16. 学习excel的使用技巧复制一列文本成新列去重
  17. mysql怎么将成绩划分等级_MySQL按等级查询
  18. R语言 基于共现提取《雪中悍刀行》人物关系并画网络图
  19. 利用编程游戏来学习编程
  20. 大数据项目篇--电商用户画像

热门文章

  1. .net core3.1 下由Autofac接管IOC
  2. React v16版本 源码解读
  3. 解决 Windows 端口被占用问题
  4. 【Python】列表类型操作函数和方法
  5. [BJDCTF2020]Cookie is so stable
  6. 【ios】在真实设备上运行
  7. python标准库之smtplib,poplib,imaplib,smptd
  8. io.circe_如何使用Circe(Un)在Akka HTTP中封送JSON
  9. javascript功能_最新版本JavaScript仅具有2个新功能。 这是他们的工作方式。
  10. php wula,PHP老师没教过你的那些知识点