transforms的使用

:::tips
Q & A
Q:为什么需要tensor图片类型?
A :tensor类型包含了神经网络所需要的各种信息

:::

  • transforms就是一个工具箱,其中有ToTensor,resize等工具。
  • ToTensor是一个类,作用是将图片类型转成ToTensor类型


ToTensor的使用方法

作用:

ToTensor是一个类,用来将图片转成tensor类型

使用:

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

举例:

将jpg类型转换成Tensor类型

from PIL import Image
from torchvision import transforms
img_path="./Data/train/ants_img/0013035.jpg"
img_JDP=Image.open(img_path)

tensor_trans=transforms.ToTensor()
tensor_img=tensor_trans(img_JDP)

Normalize

作用:

让图片的三个信道归一化;
归一化是未来消除奇异值,及样本数据中于其他数据相比特别大或特别小的数据,这样可以加快训练速度。

使用:

norm_trans=transforms.Normalize([0.5,0.5,0.5],[0.5,0.5,0.5])
norm_img=norm_transforms(img)
第一行代码括号内的参数分别是三个信道的均值和标准差

举例:

from PIL import  Image
from torchvision import transforms

img_path="./Data/train/ants_img/0013035.jpg"
img=Image.open(img_path)

norm_trans=transforms.Normalize([0.5,0.5,0.5],[0.5,0.5,0.5])
norm_img=norm_trans(tensor_img)

Resize

作用

改变图片的尺寸

使用

trans_resize=transforms.Resize((521,512))
img_resize=trans_resize(img)

举例

trans_resize=transforms.Resize((521,512))
img_resize=trans_resize(img)
img_resize_tensore=trans_tensor(img_resize)
writer.add_image("Resize",img_resize_tensore,1)

Compose

作用

将多个图像变换操作组合在一起,使得在图像加载和预处理时更加灵活和高效。

使用

trans_compose=transforms.Compose([trans_resize_2,trans_tensor])
img_resize_2=trans_compose(img)

举例

#Compose
trans_resize_2=transforms.Resize(512)
trans_compose=transforms.Compose([trans_resize_2,trans_tensor])
img_resize_2=trans_compose(img)
writer.add_image("Resize",img_resize_2,2)

RandomCrop

作用

随机剪取

使用

trans_random=transforms.RandomCrop(512)
trans_compose_2=transforms.Compose([trans_random,trans_tensor])
for i in range(10):
    img_crop=trans_compose_2(img)
    writer.add_image("RandomCrop",img_crop,i)


本篇总代码

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

img_path="./Data/train/ants_img/0013035.jpg"
img=Image.open(img_path)

writer=SummaryWriter("logs")

#ToTensor
trans_tensor=transforms.ToTensor()
tensor_img=trans_tensor(img)
writer.add_image("tensor",tensor_img,1)

#Normalize(归一化)
norm_trans=transforms.Normalize([0.5,0.5,0.5],[0.5,0.5,0.5])
norm_img=norm_trans(tensor_img)
print(norm_img[0][0][0])
writer.add_image("Normalize",norm_img,2)

#Resize
trans_resize=transforms.Resize((521,512))
img_resize=trans_resize(img)
img_resize_tensore=trans_tensor(img_resize)
writer.add_image("Resize",img_resize_tensore,1)

#Compose
trans_resize_2=transforms.Resize(512)
trans_compose=transforms.Compose([trans_resize_2,trans_tensor])
img_resize_2=trans_compose(img)
writer.add_image("Resize",img_resize_2,2)

#randomCrop
trans_random=transforms.RandomCrop(512)
trans_compose_2=transforms.Compose([trans_random,trans_tensor])
for i in range(10):
    img_crop=trans_compose_2(img)
    writer.add_image("RandomCrop",img_crop,i)

writer.close()
  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值