【深度学习】【入门】Transforms的使用

一.Transforms简介

定义与作用:数据预处理在深度学习中的重要性

常见应用场景:图像分类、目标检测、数据增强

二.常见Transforms结构及入门用法

(其实可以把Transforms看成一种工具箱,在使用时就是使用里面的工具,接下来博主会讲解Transforms中几种入门时常用的“工具”)

(1) ToTensor

作用:将PIL图像或ndarray转化为tensor(张量:深度学习常用的数据结构),并相应的缩放数值

用法及案例:

from PIL import Image
from torchvision import transforms

img_path = "一张图片的地址"    #自定义
img = Image.open(img_path)
print('PIL类型:')
print(img)

tensor = transforms.ToTensor()
tensor_img =tensor(img)
print('tensor类型:')
print(tensor_img)


  tensor = transforms.ToTensor():打开“工具箱”transforms,取出工具ToTensor并给工具命名为tensor
  tensor_img =tensor(img):用“工具”加工原料‘img’,成品另外命名

结果: 

(2)Normalize

 作用:使用均值和标准差对张量图像进行归一化(Normalize)操作,通过该操作可以将图像张量的数值按指定的均值和标准差做标准化变换,有助于模型训练时更快收敛、提升性能

用法及案例:

​
from PIL import Image
from torch.utils.tensorboard import SummaryWriter
from torchvision import transforms

writer = SummaryWriter("../logs")
img_path = "你的图片路径"
img = Image.open(img_path)

tensor = transforms.ToTensor()
tensor_img =tensor(img)

print(tensor_img[0][0][0])
trans_norm = transforms.Normalize([0.5,0.5,0.5],[0.5,0.5,0.5])
norm_img = trans_norm(tensor_img)
print(norm_img[0][0][0])
writer.add_image("Normalize", norm_img)

writer.close()

​

   trans_norm = transforms.Normalize([0.5,0.5,0.5],[0.5,0.5,0.5])打开“工具箱”transforms,取出工具Normalize规定好均值和标准差并给工具命名为trans_norm 

   norm_img = trans_norm(tensor_img):将tensor类型(必须)的数据传入,得到返回值

结果:

        (归一化后0行0列像素点的数字变化)

              

                       (图像的变化,在改变均值和标准差后又会不一样,可以自己尝试一下) 

(3)Resize

作用:将输入的图像调整为给定尺寸(如果为tensor类型需满足[···,H,W]形状,···表示最多两个前置维度,H是高度,W是宽度),最好先为PIL类型,转化后再改为tensor

用法及案例: 

from PIL import Image
from torch.utils.tensorboard import SummaryWriter
from torchvision import transforms

writer = SummaryWriter("../logs")
img_path = "你的图片路径"
img = Image.open(img_path)

tensor = transforms.ToTensor()

print(img)
writer.add_image("img",tensor(img))
trans_resize = transforms.Resize((1024,512))
img_resize = trans_resize(img)
print(img_resize)
writer.add_image("img_resize",tensor(img_resize))


writer.close()

   rans_resize = transforms.Resize((1024,512)):使用Resize“工具”并设定好要改变的数据

   img_resize = trans_resize(img):改变数值并返回

注:当Resize中只输入一个值时它会把最小的值改变,再等比放缩

结果:

                                                           (长宽发生变化) 

                                                                    (变化的图像) 

(4)Compose

作用:将多个图像变换操作组合起来,让输入的图像按顺序变换

用法及案例:

​
from PIL import Image
from torch.utils.tensorboard import SummaryWriter
from torchvision import transforms

writer = SummaryWriter("../logs")
img_path = "你的图片路径"
img = Image.open(img_path)

tensor = transforms.ToTensor()
trans_resize = transforms.Resize(1024)
trans_compose = transforms.Compose([trans_resize,tensor])

print(img)
writer.add_image("img",tensor(img))

img_compose = trans_compose(img)
print(img_compose)
writer.add_image("img_compose",img_compose)


writer.close()

​

   trans_compose = transforms.Compose([trans_resize,tensor]):用中括号把定义好的工具放一起,调用时按顺序进行

结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值