pytorch学习的第三天,transform中Normalize和Resize的用法

Normalize是干什么的

在深度学习的transform操作中,Normalize主要用于对图像数据进行归一化处理。其作用是将每个通道(如RGB图像的红、绿、蓝通道)的像素值调整到特定的均值和标准差范围,以便于加速训练收敛并改善模型的性能。

Normalize(mean, std) 一般有两个主要参数:

  • mean:对每个通道的像素值进行均值平移(减去对应通道的均值)。
  • std:将每个通道的像素值除以对应通道的标准差,从而使数据在0附近呈现标准化的分布。

归一化的公式是:

例如,若使用Normalize(mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5]),表示将图像的RGB三个通道的每个像素值减去0.5,并除以0.5。这通常将图像的像素值范围从[0, 1]变换为[-1, 1]。

为什么需要Normalize?

  1. 使模型更容易训练:归一化后的数据使模型能够更快速地收敛,因为它消除了不同通道之间的尺度差异。
  2. 提升模型泛化能力:通过归一化,输入特征的分布更加一致,可以提升模型在测试集或新数据上的表现

 示例代码:

writer = SummaryWriter("logs")
img_path = "dataset/train/ants_image/0013035.jpg"
img = Image.open(img_path)
# ToTensor
trans_tensor = transforms.ToTensor()
tensor_img = trans_tensor(img)
# Normalize
trans_norm = transforms.Normalize([0.5,0.5,0.5],[0.5,0.5,0.5])
img_norm = trans_norm(tensor_img)
writer.add_image("Norm",img_norm)
writer.close()
# print(tensor_img)

一般数据集的mean和std需要自己算,我这里示例就是随便写的,计算方式如下:

1. 计算每个通道的均值(mean):
  • 对数据集中所有图像的每个通道的像素值求平均。
2. 计算每个通道的标准差(std):
  • 对每个通道的像素值计算标准差,反映数据集的像素值在均值附近的波动范围。

有小白肯定会问,通道是什么,在计算机视觉中,通道(Channel)是指图像中的颜色维度。图像通常由多个颜色通道组成,每个通道保存图像在某种颜色或光谱下的强度信息。比如RGB图片就是三通道,红绿蓝。

Resize是干什么的 

在图像处理领域中,transform 中的 resize 是用来调整图像大小的操作。它将图像缩放到指定的宽度和高度,这对于统一图像输入尺寸、节省计算资源或适应模型输入要求非常有用。

具体地,resize 在深度学习中的作用包括:

  1. 调整输入尺寸:很多神经网络模型需要固定大小的输入图像。resize 可以将不同大小的图像调整到同一尺寸,从而使模型能够处理这些图像。

  2. 保持或不保持比例resize 操作可以选择是否保持原始图像的宽高比例。在某些情况下,可能需要严格保持比例,而在其他情况下,可能需要拉伸或压缩图像。

  3. 数据增强:在训练模型时,调整图像的大小可以作为一种数据增强方法,通过改变图像尺寸来丰富数据集,从而提升模型的泛化能力。

示例代码;

# Resize
# Resize不会改变图片的类型
writer = SummaryWriter("logs")
img_path = "dataset/train/ants_image/0013035.jpg"
img = Image.open(img_path)
# ToTensor
trans_tensor = transforms.ToTensor()
tensor_img = trans_tensor(img)
trans_resize = transforms.Resize((256,256))
img_resize = trans_resize(tensor_img)
writer.add_image("Resize",img_resize)

 运行之后在terminal中打开Tensorboard查看下

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值