Transforms使用

一、认识Transforms

transforms 是 torchvision 库中的一个模块,它提供了一系列的图像预处理功能。这些功能可以被用来对图像数据进行变换,以便它们能够被神经网络模型更好地处理。transforms 模块中的函数通常用于数据增强(data augmentation),这是机器学习中常用的技术,可以提高模型的泛化能力。
transforms常用的功能:
转换为Tensor : 将PIL图像或NumPy数组转换为FloatTensor,并且将图像像素值从[0, 255]缩放到[0.0, 1.0]。
标准化 : 根据提供的均值和标准差对图像进行标准化处理,这通常用于训练深度学习模型。
随机裁剪 : 从图像中随机裁剪出一个指定大小的区域。
随机水平翻转 : 以一定的概率水平翻转图像。
随机旋转: 随机旋转图像一定的角度。
中心裁剪 : 裁剪图像的中心区域到指定大小。

transforms的composes功能:将几个不同的transforms组合成一起。
transforms的ToTensor功能:将PIL Image或者numpy.ndarray数据类型转化成tensor.
transforms的Resize功能:对图片进行尺寸的变换。
transforms的CenterCrop功能:对图片进行中心的裁剪.

在这里插入图片描述

二、ToTensor方法使用

数据转换方法:
transform函数中集成的特殊方法之一

    def __call__(self, pic):
        """
        Args:
            pic (PIL Image or numpy.ndarray): Image to be converted to tensor.

        Returns:
            Tensor: Converted image.
        """
        return F.to_tensor(pic)

这方法意思是接收一个pic变量,它是一个PIL图像(PIL是Python Imaging Library的缩写)或者一个NumPy数组。这个方法的目的是将输入的图像转换为一个PyTorch张量(Tensor)。

图片的相对路径:

绝对路径:C:\Users\Casey\AppData\Local\Python_learn\pythonProject1\Dataset\train\ants\0013035.jpg
相对路径:Dataset/train/ants/0013035.jpg

通常在Windows中, \ 会被当成转义符号,要想被计算机识别,应该用双斜杠\
也就是C:\\Users\\Casey\\AppData\\Local\\Python_learn\\pythonProject1\\Dataset\\train\\ants\\0013035.jpg
所以一般引用图片路径,都是使用相对路径。

代码:

from PIL import Image
from torchvision import transforms
img_path = "Dataset/train/ants/0013035.jpg"
img = Image.open(img_path)
tensor_trans = transforms.ToTensor()
tensor_img = tensor_trans(img)
print(tensor_img)

通过ToTensor转换成tensor结果:
在这里插入图片描述

其中将指针放在tensor_img = tensor_trans()的括号中,按下键盘的Ctrl+P,可以看到需要什么参数。如下图的pic
在这里插入图片描述

通过OpenCV读取图片的格式是numpy.ndarray形数据,同样可以用ToTensor进行格式转换。

报错语句可以通过Alt+空格查看默认的解决方案:
在这里插入图片描述
选择即可自动引用第三方库。

三、展示图片的方法

什么是SummaryWriter
torch.utils.tensorboard 模块中的 SummaryWriter 类来创建一个 TensorBoard 的日志写入器。其主要的作用也就是写入功能。TensorBoard 是 TensorFlow 提供的一个可视化工具,但它也支持 PyTorch。它可以帮助用户可视化训练过程中的各种指标,如损失、准确率,以及模型的计算图和激活分布等。

代码:

from PIL import Image
from torch.utils.tensorboard import SummaryWriter
from torchvision import transforms
img_path = "Dataset/train/ants/0013035.jpg"
img = Image.open(img_path)

#writer只是一个新命名的存储变量,用来接收SummaryWriter("logs")的变量
writer = SummaryWriter("logs")

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

writer.add_image("Tensor_img",tensor_img)

writer.close()

写完代码后,在pycharm的Terminal终端中输入一下指令:

 tensorboard --logdir=logs

回车即可得到下面这条连接:
在这里插入图片描述

打开连接就能看到图片
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值