【深度学习目标检测】Pytorch学习(3)transform的使用

本文介绍如何在PyTorch中使用transforms进行图像预处理,包括转换为Tensor、归一化、调整大小及随机裁剪等操作,并探讨Tensor数据类型的必要性。
PyTorch 2.9

PyTorch 2.9

PyTorch
Cuda

PyTorch 是一个开源的 Python 机器学习库,基于 Torch 库,底层由 C++ 实现,应用于人工智能领域,如计算机视觉和自然语言处理

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

# transform是一个工具箱,里面一个类对应一个工具
# 好比totensor resize等工具
# python的用法  tensor数据类型
# 通过transform.totensor去看两个问题
# 1、transform该如何使用在python里面
# 2、为什么我们需要tensor的数据类型

img_path = "DataSet/Data/train/ants_image/0013035.jpg"
img = Image.open(img_path)
# print(img)
write = SummaryWriter("logs")
# 1、transform该如何使用在python里面
# 创建一个具体的工具,例如:tensor_trans=transforms.ToTensor()
# 工具的使用,保证输入输出的正确性 result=tensor_trans(input)
tensor_trans = transforms.ToTensor()
tensor_img = tensor_trans(img)
write.add_image("tensor_img", tensor_img)

# print(tensor_trans)
# print(tensor_img)
# 2、为什么我们需要tensor的数据类型
# tensor里面记录一些重要的参数,比如backword,学习率;包装了神经网络的基础属性
# 常见的transform
cv_img = cv2.imread(img_path)
img_tensor = tensor_trans(cv_img)
write.add_image("ToTenSer", img_tensor)
# normlize
# output[channel] = (input[channel] - mean[channel]) / std[channel]
# (input-0.5)/0.5=2*input-1
# input[0,1]--->result[-1,1]
print(img_tensor[0][0][0])
trans_norm = transforms.Normalize([9, 8, 7], [1, 2, 3])
img_norm = trans_norm(img_tensor)
print(img_norm[0][0][0])
write.add_image("Normliza", img_norm, 2)

# resize
print(img.size)
trans_resize = transforms.Resize((100, 100))
img_resize = trans_resize(img)
img_resize = tensor_trans(img_resize)
print(img_resize.size)
write.add_image("Resize", img_resize, 1)
# compose
# 跟上面resize的效果一样,进行队列按顺序处理
trans_resize2 = transforms.Resize(100)
trans_compose = transforms.Compose([trans_resize2, tensor_trans])
img_resize2 = trans_compose(img)
# RandomCrop
trans_randomcrop = transforms.RandomCrop(512)
trans_compose_2 = transforms.Compose([trans_randomcrop, tensor_trans])
for i in range(10):
    img_crop = trans_compose_2(img)
    write.add_image("RandomCrop", img_crop, i)
write.close()

 

您可能感兴趣的与本文相关的镜像

PyTorch 2.9

PyTorch 2.9

PyTorch
Cuda

PyTorch 是一个开源的 Python 机器学习库,基于 Torch 库,底层由 C++ 实现,应用于人工智能领域,如计算机视觉和自然语言处理

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

beyond951

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

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

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

打赏作者

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

抵扣说明:

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

余额充值