首页 > 其他分享 >10、常见的transforms中的类

10、常见的transforms中的类

时间:2023-02-12 23:02:39浏览次数:47  
标签:10 PIL tensor img 常见 totensor transforms trans

*****其实就是学会使用trannsforms的.py文件中的不同class类

主要关注点:*输入    *输出     *作用

图片的输入数据类型:                  打开方式:

PIL              Image.open( )

tensor               ToTensor( )

narrays (矩阵)         cv.imread( )

from PIL.Image import Image
from torchvision import transforms #导入两个库

1、python中__call__的用法:
#带下划线的代表是内置函数,
给他一个参数进行调用,内置函数在实例对象调用的时候可以不用.加函数名的形式

 

 2、ToTensor类的使用:

因为tensorboard必须是tensor的数据类型,



from torch.utils.tensorboard import SummaryWriter    #这个是使用tensorboard所需要的库,用来写事件文件
writer=SummaryWriter("logs")   #tensorboard的使用,需要建一个logs文件夹来存每一次活动产生的事件文件
trans_totensor=transforms.ToTensor()    #创建一个ToTensor类的实例对象
img_tensor=trans_totensor(img) #调用类中的方法,输入一个PIL类型的图片,输出一个tensor类型的图片
writer.add_image("ToTensor",img_tensor) #写入事件文件中,标题为ToTensor,一个tensor的数据
writer.close() #关闭事件文件
然后打开terminal终端去查看logs文件就可以查看到了
3、ToPILImage类的使用:
作用:将一个tensor类型或者ndarray类型的图片转换成PIL类型

4、NOrmalize类的使用:
'''归一化的公式:output[channel] = (input[channel] - mean[channel]) / std[channel]'''
trans_norm=transforms.Normalize([0.5,0.5,0.5],[0.5,0.5,0.5]) ##首先必须是一个tensor类型,然后两个参数,均值和标准差
img_norm=trans_norm(img_tensor) #参数是tensor类型的
5、Resize类的使用:
他的输入是一个PIL类型,然后给定尺寸
如果给定的是一个序列的话,比如给了高度和宽度h,w,那么输出的图片尺寸就是指定的这个;
如果给定的是一个整数的话,相当于缩放,图片最小的边会等比匹配
****pycharm小技巧设置(忽略大小写,显示提示)

 

6、Compose类的使用:

 

 

 compose一定要关注它的输入和输出!!!

trans_compose=transforms.Compose([trans_resize_2,trans_totensor])    
#compose中的参数必须是transforms类型,而且,前面的一个的输出必须和后面的输入数据类型保持一致!!!
#比如,这里Compose的第一个参数trans_resize_2的输入、输出都是PIL类型; 第二个参数trans_totensor,它的输入是PIL类型,输出是tensor类型,这样是满足要求的
因为是从 PIL--->PIL PIL--->tensor
###但是如果两个参数更换位置就会报错
trans_compose=transforms.Compose([trans_totensor,trans_resize_2])    这个是从PIL--->tensor    PIL--->PIL


7、###RandomCrop随即裁剪
trans_random=transforms.RandomCrop(512) #这里只给了一个数据,高和宽都一样
trans_compose_2=transforms.Compose([trans_random,trans_totensor]) #PIL--->PIL--->tensor
for i in range(10): #随便裁剪10个
img_crop=trans_compose_2(img)
writer.add_image("RandomCrop",img_crop,i)

trans_random=transforms.RandomCrop((500,1000)) # 这里给了高和宽

标签:10,PIL,tensor,img,常见,totensor,transforms,trans
From: https://www.cnblogs.com/ar-boke/p/17114934.html

相关文章

  • 学习笔记jira项目4-对比常见mock方案
    第一种方式第二种 3接口管理工具  4本地node服务器  ......
  • 常见误区
    前言目前OI界有许多谣言,有些很扯淡但是有人信。。。所以我想写一篇博客来纠正一部分。如果我的观点也有错误,请指正;也欢迎补充一下。可能更好的阅读体验?正文语言本......
  • 2021 OWASP top 10
    Top1:失效的访问控制      失效的访问控制,也叫越权,指的是在未对通过身份验证的用户,实施恰当的访问控制。攻击者可以利用这一漏洞,访问未经授权的功能或数据。比如,访......
  • 【DFS】LeetCode 108. 将有序数组转换为二叉搜索树
    题目链接108.将有序数组转换为二叉搜索树思路类似于二分搜索,定位到数组中间mid,然后左边的子数组构成左子树,右边的子数组构成右子树,mid处的数字构成根结点。递归构建......
  • x210-2023-02-11
    1、secureCRT中文不乱码,而英文有部分出现乱码,譬如下面图中乱码位置正常应该显示的是asm,但是其余英文并没有乱码,会话选项的字体原来设置的是新宋体,字符编码为默认,字符集为GB......
  • 戴尔T5810电脑 Hackintosh 黑苹果efi引导文件
    原文来源于黑果魏叔官网,转载需注明出处。硬件型号驱动情况主板戴尔T5810,C610/612芯片处理器英特尔至强E5-2620v3已驱动内存12GB已驱动硬盘500GBWDBlueSolidStateDriv......
  • 0元白嫖ChatGPT只要10秒钟-亲测无限制
    需求背景前面发了一篇《全网最详细的ChatGPT注册-你和ChatGPT的距离只差这篇文章》,短短几个小时,阅读量就上1000了。搭着chatGPT的热度,我也蹭了一些流量。在前面的文章中,注册......
  • 面试常见问题
    先自我介绍一下面试官好,我是×××。我认为我具备以下优势:第一,我曾在×××公司实习,以及在×××公司做了一段时间兼职,因此我具备良好的沟通能力和工作技能。第二,我在谷......
  • 代码随想录算法Day10 | 理论基础 232.用栈实现队列 225. 用队列实现栈
    理论基础栈是先进后出,队列是先进先出。如图所示。232.用栈实现队列题目链接:232.用栈实现队列-力扣(LeetCode)题目请你仅使用两个栈实现先入先出队列。队列应当支......
  • Windows10下的指纹解锁不可用问题
    之前维修过程中遇到了指纹不可以使用的问题,该同学说刚买来的时候就不能使用。。。。。可能是以下几个问题:[]Windows10低版本系统不能很好的支持部分驱动;[]使用的是超级......