计算图像数据集的均值和方差(mean, std)用于transforms.Normalize()标准化

Pytorch图像预处理时,通常使用transforms.Normalize(mean, std)对图像按通道进行标准化,即减去均值,再除以方差。这样做可以加快模型的收敛速度。其中参数mean和std分别表示图像每个通道的均值和方差序列。

Imagenet数据集的均值和方差为:mean=(0.485, 0.456, 0.406),std=(0.229, 0.224, 0.225),因为这是在百万张图像上计算而得的,所以我们通常见到在训练过程中使用它们做标准化。而对于特定的数据集,选择这个值的结果可能并不理想。接下来给出计算特定数据集的均值和方差的方法。

getState()方法接收一个Dataset类(ImageFolder),然后累加所有图像三个通道的均值和方差,最后除以图像总数并返回。

这里用cifar10做的测试,测试集返回的结果如下所示:

————————————————
版权声明:本文为CSDN博主「潜行隐耀」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/PanYHHH/article/details/107896526


注:这里涉及到两种算法

  1. 计算每张图片的像素平均灰度值,再求和并除以总图片数

  2. 计算总灰度值,将每张图像像素数求和,除以这个和

方法一更好,适用于图片大小不一样的情况

Original: https://www.cnblogs.com/sddai/p/15476594.html
Author: stardsd
Title: 计算图像数据集的均值和方差(mean, std)用于transforms.Normalize()标准化

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/547105/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球