【pytorch】transform的使用

一、transforms的用法

transforms​ 是数据预处理与增强的核心工具,主要用于将原始图像转换为模型可接受的格式,并通过随机变换丰富数据集以提高模型泛化能力。

导入方式:

python 复制代码
from torchvision import transforms

主要用法,按顺序

python 复制代码
transform_pipeline = transforms.Compose([
    transforms.Resize(256),          # 调整图像大小至256x256(保持宽高比)
    transforms.CenterCrop(224),      # 从中心裁剪224x224区域(常用预训练模型输入尺寸)
    transforms.RandomHorizontalFlip(p=0.5),  # 以50%概率水平翻转(数据增强)
    transforms.ToTensor(),           # 将PIL图像转换为Tensor(像素值缩放至[0,1])
    transforms.Normalize(            # 标准化(使用ImageNet均值/方差)
        mean=[0.485, 0.456, 0.406],  # RGB通道均值
        std=[0.229, 0.224, 0.225]    # RGB通道标准差
    )
])

二、transform的使用

将PIL图像转换成Tensor类型

python 复制代码
from PIL import Image
from torchvision import transforms

img_path = r'data/train/ants_image/0013035.jpg'
img = Image.open(img_path)
tensor_trans = transforms.ToTensor()
tensor_img = tensor_trans(img)
print(tensor_img.shape)    #CHW

通过tensor()类型的数据生成tensorboard图

python 复制代码
from PIL import Image
from torch.utils.tensorboard import SummaryWriter
from torchvision import transforms

img_path = r'data/train/ants_image/0013035.jpg'
img = Image.open(img_path)
tensor_trans = transforms.ToTensor()
tensor_img = tensor_trans(img)
# print(tensor_img.shape)    #CHW
writer = SummaryWriter('logs')
writer.add_image('tensor_img', tensor_img, 0)
writer.close()

Normalize()归一化使用

python 复制代码
from PIL import Image
from torch.utils.tensorboard import SummaryWriter
from torchvision import transforms

img_path = r'data/train/ants_image/0013035.jpg'
img = Image.open(img_path)
tensor_trans = transforms.ToTensor()
tensor_img = tensor_trans(img)
# print(tensor_img.shape)    #CHW

writer = SummaryWriter('logs')
norm_trans = transforms.Normalize([0.485, 0.456, 0.406], [0.5, 0.5, 0.5])
norm_img = norm_trans(tensor_img)

writer.add_image('tensor_img', tensor_img, 0)
writer.add_image('norm_img', norm_img, 1)
writer.close()

归一化后的图片和未归一化的图片

Resize()调整大小的使用

python 复制代码
from PIL import Image
from torch.utils.tensorboard import SummaryWriter
from torchvision import transforms

img_path = r'data/train/ants_image/0013035.jpg'
img = Image.open(img_path)
tensor_trans = transforms.ToTensor()
tensor_img = tensor_trans(img)
# print(tensor_img.shape)    #CHW

writer = SummaryWriter('logs')
norm_trans = transforms.Normalize([0.485, 0.456, 0.406], [0.5, 0.5, 0.5])
norm_img = norm_trans(tensor_img)

# print(img.size)
resize_trans = transforms.Resize((256, 256))
resize_img = resize_trans(tensor_img)
writer.add_image('resize_img', resize_img, 0)
# print(resize_img.size)
#Compose用法
trans_resize_2 = transforms.Compose([transforms.Resize((512)), transforms.ToTensor()])
img_resize_2 = trans_resize_2(img)


writer.add_image('tensor_img', tensor_img, 0)
writer.add_image('norm_img', norm_img, 1)
writer.add_image('img_resize_2', img_resize_2, 2)
writer.close()
相关推荐
Smoothcloud润云15 小时前
PyTorch推理服务模型热切换与失败回滚实战:降低版本更新中断
服务器·人工智能·pytorch·python·深度学习·gpu
朝朝辞暮i16 小时前
第 22 课:Conditional 1D U-Net——Diffusion Policy 怎样理解一整段未来动作?
人工智能·pytorch·深度学习·transformer·vla
Yolanda_20221 天前
26.网络模型的保存与读取
人工智能·pytorch·python
承渊政道1 天前
【从零开始大模型开发与微调:基于PyTorch与ChatGLM】(开源大模型ChatGLM高级定制化应用实战)
人工智能·pytorch·python·llm·模型微调·glm
Smoothcloud润云2 天前
PyTorch大模型权重加载与启动耗时优化实战:定位磁盘、内存与显存瓶颈
人工智能·pytorch·python·深度学习·gpu算力
小弥儿2 天前
GitHub今日热榜 | 2026-10-12:pytorch 上升四位
人工智能·pytorch·学习·开源·github
论文复现现场2 天前
YOLO26 单卡 RTX 4090 24GB 训练教程:自定义数据集、显存优化与云 GPU 部署
pytorch·目标检测·rtx4090·算家云·yolo26
朝朝辞暮i2 天前
第一部分:ACT 阶段总结——从 Behavior Cloning 到完整的 Transformer Action Policy
人工智能·pytorch·深度学习·transformer·vla
盼小辉丶2 天前
PyTorch强化学习实战(28)——遗传算法在强化学习中的应用
pytorch·深度学习·强化学习
Smoothcloud润云3 天前
PyTorch推理服务动态批处理实战:兼顾吞吐与延迟
人工智能·pytorch·python·深度学习·ai·gpu算力