Pytorch中的transforms.Normalize()介绍

本文介绍了数据预处理中的图像标准化方法,通过Normalize()函数将图像转换为标准高斯分布,有助于模型快速收敛。具体操作包括调整图像大小、转为Tensor并进行标准化处理。以ResNet18为例,展示了预训练模型结合数据转换的使用,其中mean和std值是针对特定数据集计算得出的常量。
摘要由CSDN通过智能技术生成

1.数据标准化

  Normalize()函数的作用是将数据转换为标准高斯分布,即逐个 c h a n n e l channel channel的对图像进行标准化(均值变为 0 0 0,标准差为 1 1 1),可以加快模型的收敛,具体的采

  • m e a n mean mean:各通道的均值
  • s t d std std:各通道的标准差
  • i n p l a c e inplace inplace:是否原地操作
  • o u t p u t [ c h a n n e l ] = i n p u t [ c h a n n e l ] − m e a n [ c h a n n e l ] s t d [ c h a n n e l ] output[channel]=\frac{input[channel]-mean[channel]}{std[channel]} output[channel]=std[channel]input[channel]mean[channel]

2.代码实例

  经常看到的 m e a n = [ 0.485 , 0.456 , 0.406 ] mean=[0.485, 0.456, 0.406] mean=[0.485,0.456,0.406], s t d = [ 0.229 , 0.224 , 0.225 ] std=[0.229, 0.224, 0.225] std=[0.229,0.224,0.225]表示的是从数据集中随机抽样计算得到的。

from torchvision import models, transforms

# 迁移学习,预训练模型
net = models.resnet18(pretrained=True)

# 数据转换
image_transform = transforms.Compose([
    # 将输入图片resize成统一尺寸
    transforms.Resize([224, 224]),
    # 将PIL Image或numpy.ndarray转换为tensor,并除255归一化到[0,1]之间
    transforms.ToTensor(),
    # 标准化处理-->转换为标准正太分布,使模型更容易收敛
	transforms.Normalize(
		mean=[0.485, 0.456, 0.406],
		std=[0.229, 0.224, 0.225])
	])
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

道2024

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值