PyTorch②---transforms结构及用法

transforms结构及用法

打开transform.py,查看里面有哪些方法:
在这里插入图片描述

  • 最常用的Compose:
    功能:将操作组合起来
    里面有中心剪裁,转成tensor数据类型等。
    在这里插入图片描述

  • ToTensor:将PIL或numpy格式的图片转成tensor数据类型。
    在这里插入图片描述

  • Normalize:归一化

  • Resize:重新剪裁

  • CenterCrop:中心剪裁

transforms.py工具箱

输入(特定类型的图片)—>工具箱创建自己的工具(常用:totensor、resize等方法)—>结果

用法

  • tensor数据类型:通过transforms.ToTensor解决两个问题

1、transforms如何使用
先实例化一个transforms.ToTensor()对象
再使用对象名()进行调用
2、Tensor数据类型相较于其他数据类型有什么区别
包含了神经网络中的一些参数(反向传播的一些参数、设备、等等)

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


#python的用法--->tensor数据类型
#通过transforms.ToTensor解决两个问题
#1.transforms该如何使用
#2.为什么需要tensor数据类型

'''绝对路径:D:\pythonProject\pytorch\dataset\train\ants\0013035.jpg  绝对路径要加转义符\
   相对路径:dataset/train/ants/0013035.jpg
'''
#读取图片:PIL格式
img_path= "dataset/train/ants/0013035.jpg"
img=Image.open(img_path)
print('PIL读入文件的格式:{}'.format(type(img)))
#读取图片:opencv,numpy格式
cv_img=cv2.imread(img_path)
print('OpenCV读取文件的格式.{}'.format(type(cv_img)))

writer=SummaryWriter("../logs_transforms")

#将PIL文件或numpy文件转换为tensor类型(1.transforms该如何使用)
#实例化一个对象
tensor_trans=transforms.ToTensor()
#调用、传入参数:PIL类型,点击CTRL+P
#transforms.py里内置__call__方法,可以直接用对象名()来调用,可以不用.调用
tensor_img=tensor_trans(img)
print('转换后的PIL文件类型:{}'.format(type(tensor_img)))

#2.为什么需要tensor数据类型:tensor数据类型包括了神经网络需要的一些参数

#直接传入tensor型
writer.add_image("Tensor_img",tensor_img)
writer.close()

控制台:
在这里插入图片描述
tensorboard:
在这里插入图片描述

注意:上节课用tensorboard读入的图片是PIL—>numpy类型
这节课用tensorboard读入的图片是PIL、numpy—>tensor类型

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
首先,要在Windows上使用PyTorch训练自己的数据集,需要安装适用于Windows的PyTorch、CUDA和CUDNN等软件。可以通过PyTorch官方网站下载适用于Windows的PyTorch版本,并根据官方文档的指引进行安装。 接下来,准备自己的数据集。数据集应该包括图像和相应的标注信息,例如边界框和类别标签。可以使用标记工具(如LabelImg)来手动标注图像,并生成XML或CSV文件以存储标注信息。确保标注信息的格式与训练模型所需的格式一致。 然后,需要编写自定义的数据集加载器。可以创建一个继承自PyTorchDataset类的子类,在该子类中实现__getitem__和__len__等方法。在__getitem__方法中,加载图像和相应的标注信息,并对它们进行预处理(如缩放、裁剪等)。同时,可以使用PyTorch提供的transforms模块进行数据增强(如随机翻转、旋转等)。 在训练之前,还需要定义模型结构。可以使用现有的预训练模型,如ResNet,将其与分类器部分替换为适用于目标检测的模型。在Faster R-CNN中,常用的基础模型是ResNet和VGG等。 接下来,定义损失函数和优化器。在Faster R-CNN中,常用的损失函数是RPN(Region Proposal Network)的分类和回归损失,以及分类器和回归器的损失。可以使用PyTorch提供的损失函数模块(如CrossEntropyLoss和SmoothL1Loss)来定义这些损失函数,并选择合适的优化器(如SGD或Adam)进行参数更新。 最后,进行训练。使用加载器加载训练数据集,并在每个iteration中将数据传递给模型进行前向传播和反向传播,并进行参数更新。可以根据需要设置训练的epoch数、学习率和批量大小等参数。 需要注意的是,在Windows上训练自己的数据集可能会遇到一些环境配置和依赖问题。在遇到问题时,可以查阅相关文档和社区论坛,寻找解决方案。此外,还可以考虑使用Colab等在线平台来训练模型,这些平台已经预先配置好了环境,并且提供了免费的GPU加速。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

莫听穿林打叶声@

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

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

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

打赏作者

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

抵扣说明:

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

余额充值