Transforms的使用(一)

Transforms是PyTorch中用于图像预处理的工具,包括ToTensor和Normalize等。ToTensor将图像转换为Tensor类型,便于神经网络操作,而Normalize进行归一化,加速梯度下降。文章通过示例展示了如何使用这些工具并解释了它们的作用。
摘要由CSDN通过智能技术生成

(1)Transforms用途

① Transforms当成工具箱的话,里面的class就是不同的工具。例如像totensor、resize这些工具。
② Transforms拿一些特定格式的图片,经过Transforms里面的工具,获得我们想要的结果。

(2)Transforms该如何使用

(1) transforms.Totensor使用

# Transforms的使用
# python的用法--tensor数据类型
# 通过transforms.ToTensor去看两个问题
# 1.transforms该如何使用
# 2.为什么我们需要Tensor数据类型

from torchvision import transforms
from PIL import Image
img_path = 'DataSet/train/ants_image/0013035.jpg'
img = Image.open(img_path)
tensor_trans = transforms.ToTensor()  # 创建 transforms.ToTensor类 的实例化对象
tensor_img = tensor_trans(img)  # 调用 transforms.ToTensor类 的__call__的魔术方法
print(tensor_img)

(2)需要Tensor数据类型原因

① Tensor有一些属性,比如反向传播、梯度等属性,它包装了神经网络需要的一些属性。

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

img_path = "Data/FirstTypeData/val/bees/10870992_eebeeb3a12.jpg"
img = Image.open(img_path)

writer = SummaryWriter("logs") 

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

writer.add_image("Temsor_img",tensor_img) 
writer.close()

② 在 Anaconda 终端里面,激活python环境,再输入 tensorboard --logdir=logs 命令,将网址赋值浏览器的网址栏,回车,即可查看tensorboard显示日志情况。
在这里插入图片描述
③ 点击网址可得Tensorboard界面。

在这里插入图片描述

(3)常见的Transforms工具

Transforms的工具主要关注它的输入、输出、作用。

(1)__call__魔术方法使用

class Person:
    def __call__(self, name):
        print("__call__ " + "Hello " + name)

    def hello(self, name):
        print("hello" + name)


person = Person()
person("hangman")
person.hello("list")

输出结果:

在这里插入图片描述

(2)Normanize归一化

归一化的作用:不同维度之间的特征在数值上量纲可能不一样,归一化就是让他们量纲大致差不多,这样梯度下降更快,更容易求解。消除奇异值及样本数据中与其他数据相比特别大或特别小的数据,加快训练速度。

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

writer = SummaryWriter("../logs")
img = Image.open("E:\\Python\\PytorchDemoOne\\DataSet\\train\\ants_image\\0013035.jpg")
print(img)

# Tensor
trans_totensor = transforms.ToTensor()
img_tensor = trans_totensor(img)
writer.add_image("ToTensor",img_tensor)


# Normalize
print(img_tensor[0][0][0])# 归一化之前结果
trans_norm = transforms.Normalize([0.5,0.5,0.5],[0.5,0.5,0.5])
img_norm = trans_norm(img_tensor)
print(img_norm[0][0][0])# 归一化之后结果
writer.add_image("Normalize",img_norm)

writer.close()

输出结果:

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值