欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 培训 > Transforms使用

Transforms使用

2024/10/25 12:16:51 来源:https://blog.csdn.net/Mr_Happy_Li/article/details/141820949  浏览:    关键词:Transforms使用

文章目录

    • 一、认识Transforms
    • 二、ToTensor方法使用
    • 三、展示图片的方法

一、认识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

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

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

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com