当前位置:   article > 正文

深度学习(PyTorch)——Transforms的使用方法与技巧_深度学习transform

深度学习transform

B站UP主“我是土堆”视频内容

Transforms主要是对数据进行特定的变化

 Transforms的结构及其用法

在pycharm输入from torchvision import transforms,按住ctrl然后鼠标点击transforms,可以查看transforms的源代码,如下图所示

点击structure 得到下图

 

 ToTensor是把一个图片或者numpy.ndarray转换成tensor

 

 实战练习一:

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

 ToTensor里面的__call__(self,pic)含义,输入参数pic表示当要使用时传入一个图片(PIL Image)或者numpy.ndarray,然后它会返回一个tensor类型的数据

ctrl+P可以查看需要传入的参数是什么,如下图所示

  tensor数据类型可以理解为包装了我们神经网络所需要的一些参数,方便神经网络的训练

 tensor数据类型可以理解为包装了我们神经网络所需要的一些参数

代码如下:

  1. from torch.utils.tensorboard import SummaryWriter
  2. from torchvision import transforms
  3. from PIL import Image
  4. # 绝对路径:C:\Users\23620\Desktop\TD_torch\data\train\ants_image\0013035.jpg
  5. # 相对路径:data/train/ants_image/0013035.jpg
  6. img_path = "data/train/ants_image/0013035.jpg"
  7. img = Image.open(img_path)
  8. writer = SummaryWriter("logs")
  9. tensor_trans = transforms.ToTensor()
  10. tensor_img = tensor_trans(img)
  11. writer.add_image("Tensor_img",tensor_img)
  12. writer.close()

实战练习二:

compose是把几种不同的transforms组合在一起,下面例子表示输入一张图片,先经过中心裁剪,然后把裁剪后的数据转换成tensor数据类型

Example:
    >>> transforms.Compose([
    >>>     transforms.CenterCrop(10),
    >>>     transforms.ToTensor(),
    >>> ])

 

 

 如果一个类定义了内置__call__的话,直接一个对象给输入参数便可

 

 

 

normalize是归一化处理,需要输入每一个通道的均值和标准差,例如,输入的图片是RGB三个通道,则均值和标准差应该为[mean,mean,mean],[std,std,std]

 

 

 

 

 

resize可以修改图片的尺寸大小 

 

 

 

 

 

 

 设置大小写字母都能有提示的方法:file->setting

 

 

 

compose是把几种不同的transforms组合在一起, 

 ​​​​​​​

 

 程序如下:

  1. from PIL import Image
  2. from torch.utils.tensorboard import SummaryWriter
  3. from torchvision import transforms
  4. writer = SummaryWriter("logs")
  5. img = Image.open("images/24335309_c5ea483bb8.jpg")
  6. print(img)
  7. #ToTensor
  8. trans_totensor = transforms.ToTensor()
  9. img_tensor = trans_totensor(img)
  10. writer.add_image("ToTensor",img_tensor)
  11. #Normalize
  12. print(img_tensor[0][0][0])
  13. trans_norm = transforms.Normalize([1,3,5],[3,2,1])
  14. img_norm = trans_norm(img_tensor)
  15. print(img_norm[0][0][0])
  16. writer.add_image("Normalize",img_norm,1)
  17. #resize
  18. print(img.size)
  19. trans_resize = transforms.Resize((512,512))
  20. #img PIL->resize->img_resize PIL
  21. img_resize = trans_resize(img)
  22. #img_resize PIL->totensor->img_reszie tensor
  23. img_resize = trans_totensor(img_resize)
  24. writer.add_image("Resize",img_resize,0)
  25. print(img_resize)
  26. #Compose - resize - 2
  27. trans_resize_2 = transforms.Resize(512)
  28. trans_compose = transforms.Compose([trans_resize_2,trans_totensor])
  29. img_resize_2 = trans_compose(img)
  30. writer.add_image("Resize",img_resize_2,1)
  31. writer.close()
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/306986
推荐阅读
相关标签
  

闽ICP备14008679号