transforms的二十二个方法(transforms用法非常详细)

news2024/11/16 13:42:57

变换是常见的图像变换,其可以适应连接在一起的 C o m p o s e Compose Compose,
此外,还有 t o r c h v i s i o n . t r a n s f o r m s . f u n c t i o n a l torchvision.transforms.functional torchvision.transforms.functional模块,功能转换可以对转换进行细粒度控制,如果您必须构建更复杂的转换管道(例如,在分段任务情况下),这将非常有用类。

torchvision.transforms.Compose(transforms)

  • transforms: (Transformes对象列表)要组成的变换列表。
transforms.Compose([
     transforms.CenterCrop(10),
     transforms.ToTensor(), ])

常见的图像变换

官方文档只将该方法陈列,没有归纳总结,顺序很乱,这里总结一共有四大类,方便大家索引。

  • 裁剪(Crop):—中心裁剪:

    • transforms.CenterCrop:中心裁剪
    • transforms.RandomCrop:随机裁剪
    • transforms.RandomResizedCrop:随机长宽比裁剪
    • transforms.FiveCrop:上下左右中心裁剪
    • transforms.TenCrop:上下左右中心裁剪后翻转
  • 翻转和旋转——

    • transforms.RandomHorizontalFlip(p=0.5):依概率 p p p水平翻转
    • transforms.RandomVerticalFlip(p=0.5):依概率p垂直翻转
    • transforms.RandomRotation:随机旋转。
  • 图像变换(resize)

    • transforms.Resize : 图像变换(resize)
    • transforms.Normalize:标准化
    • transforms.ToTensor: 转为tensor,并归一化为[0-1]
    • transforms.Pad :。填充
    • transforms.ColorJitter:修改亮度、对比度和饱和度
    • transforms.Grayscale:转灰度图
    • transforms.LinearTransformation():线性变换
    • transforms.RandomAffine:放射变换
    • transforms.RandomGrayscale:依概率 p p p转为灰度图
    • transforms.ToPILImage:将数据转换为PILImage
    • transforms.Lambda:Apply a user-defined lambda as a transform
  • 对transforms操作,使数据增强更灵活,transforms.RandomChoice(transforms),从给定一系列的transform中选一个进行操作,transforms.RandomApply(transforms, p=0.5),
    给一个transform加上概率,依概率进行操作:transforms.RandomOrder。将transform中的操作进行随机打乱。

裁剪——Crop

随机裁剪

transforms.RandomCrop

torchvision.transforms.RandomCrop(size,padding = None,pad_if_needed = False,fill = 0,padding_mode ='constant'

在这里插入图片描述
在这里插入图片描述

中心裁剪transforms.CenterCrop

torchvision.transforms.CenterCrop(size) 

依据给定的 s i z e size size从中心裁剪参数,size-(sequence or int).
若为 s e q u e n c e sequence sequence,则为 ( h , w ) (h,w) (h,w),若为 i n t int int,则为(size,size).

随机长宽比裁剪:transforms.RandomResizedCrop

torchvision.transforms.RandomResizedCrop(size, scale=(0.08, 1.0), ratio=(0.75, 1.3333333333333333), interpolation=2)

将给定的PIL图像裁剪为随机大小和宽高比
将原始图像大小变成随机大小(默认值:是原始图像的0.08到1.0倍)和随机宽高比(默认值:3/4到4/3倍)。这种方法最终调整到适当的大小。这通常用于训练Inception网络

  • size:每条边预期输出大小。
  • scale:裁剪的原始尺寸大小范围。
  • ratio:裁剪的原始宽高比的宽高比范围。
  • interpolation - 默认值:PIL.Image.BILINEAR

上下左右中心裁剪:transforms.FiveCrop

torchvision.transforms.FiveCrop(size)

将给定的PIL图像,裁剪为四个角和中央裁剪
此转换返回图像元组,并且数据集返回的输入和目标数量可能不匹配

  • 对图片进行上下左右和中心裁剪,获得5张图片,返回一个 4 D − t e n s o r 4D-tensor 4Dtensor参数,size- (sequence or int),若为sequence,则为(h,w),若为int,则(size,size)。

上下左右中心裁剪后翻转

  • transforms.TenCrop
torchvision.transforms.TenCrop(size, vertical_flip=False) 

将给定的PIL图像裁剪为四个角中央裁剪加上这些的翻转版本(默认使用水平翻转)。
此转换返回图像元组,并且数据集返回的输入和目标数量可能不匹配。

  • size(sequence 或int) -作物的所需输出大小。如果size是int而不是像(h,w)这样的序列,则进行正方形裁剪(大小,大小)。
  • vertical_flip(bool) - 使用垂直翻转而不是水平翻转

转化为tensor transforms.ToTensor

torchvision.transforms.ToTensor

功能:将PILImage或者 n d a r r a y ndarray ndarray,转换为 t e n s o r tensor tensor
并且归一化至 [ 0 − 1 ] [0-1] [01],
注意事项:归一化至[0-1]是直接除以255,若自己的ndarray数据尺度有变化,则需要自行修改。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/70948.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Redis - 数据概念与操作

1.Redis数据类型 Redis存储的是key-value结构的数据,其中key是字符串类型,value有5种数据类型: (1)字符串 string 如:“hello,world” (2)列表 list 如:a b c d a &…

【Jmeter】接口测试工具常用配置

目录 一、简介 二、安装和配置 三、Jmeter常用组件 四、编写一个HTTP接口脚本 五、断言 一、简介 JMeter,一个100%的纯Java桌面应用,由Apache组织的开放源代码项目,它是接口功能、自动化、性 能测试的工具。具有高可扩展性、…

用于NLP的Python:使用Keras的多标签文本LSTM神经网络分类

介绍 在本文中,我们将看到如何开发具有多个输出的文本分类模型。我们开发一个文本分类模型,该模型可分析文本注释并预测与该注释关联的多个标签。 最近我们被客户要求撰写关于NLP的研究报告,包括一些图形和统计输出。多标签分类问题实际上是…

SPP-24《区块链技术及应用报告》

本文根据中科院计算所研究员孙毅博士的报告,总结区块链的基本原理、认识误区、技术挑战及应用场景。时间:2022-12-07 在2022十四五数字经济发展规划中,区块链列入重点发展规划。在数据为王的时代,谁拥有了数据,谁就拥有…

【网络安全工程师】从零基础到进阶,看这一篇就够了

学前感言 1.这是一条需要坚持的道路,如果你只有三分钟的热情那么可以放弃往下看了。 2.多练多想,不要离开了教程什么都不会,最好看完教程自己独立完成技术方面的开发。 3.有问题多google,baidu…我们往往都遇不到好心的大神,谁…

深度学习中常见问题及知识点补充(持续更新中)

1. 问题描述 出现原因:tensorflow版本与keras版本不对应 (图片是取自一位叫皮肤科大白的博主)如果两个版本不对应就会出现上述问题 解决办法:查找自己tensorflow的版本号,根据tensorflow版本安装对应版本的keras #…

深聊性能测试,从入门到放弃之: Windows系统性能监控(二) 资源监控器介绍及使用。

资源监控器介绍及使用1、引言2、资源监视器2.1 打开方式2.2 基本介绍2.3 使用3、总结1、引言 小屌丝:鱼哥,我看了你这篇《Windows系统性能监控(一) 性能监视器介绍及使用》,让我学到了好多知识。 小鱼:嗯,我自己在写这…

关于kunit的二点够用就行知识概念

前面我们写过一篇关于Kunit怎么快速使用起来的文章,但是当时只是搭建了框架,让整个KUNIT跑起来了。使用到的关于KUNIT中的东西还是比较的少。现在这次我们去测试一些复杂的场景,使用到一些复杂的断言。继续我们的二点点KUNIT,学习…

神经网络的类型分类和结构理解

一、序言 神经网络是模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。 在深度学习领域,神经网络就是我们深度学习的灵魂,如果我们想依靠算法实现一些功能,就必须依托不同的神经网络结构,所以很有必…

WPF 3D 使用3D Tools简单实现鼠标控制模型

CSDN上下载一个资源, 3D模型导入wpf_wpf加载obj模型光线和相机配置-C#代码类资源-CSDN下载 从VS中打开,运行如下; 出来一个模型; 可以用鼠标旋转,翻转模型,从不同角度方位查看模型; 项目结构…

python-(6-4-4)爬虫---bs解析案例---爬取图片

文章目录一 需求二 操作思路1 拿到主页面的源代码,提取链接地址href2 通过href拿到子页面的内容,并找到图片下载地址 img ---> src3 下载图片三 分析步骤1 拿到主页面的源代码,提取链接地址href2 通过href拿到子页面的内容,并找…

sketch基础教程大全,对象、图层、画板常见技巧

sketch对象、图层、画板的使用技巧 1.通过快捷键调整图形的形状 选择图形,按住Command按键,然后通过上、下、左、右方向键按1像素调整图形形状。同时按住按钮。CommandShift方向键,可调整方向键。 ​2.复制元素 选择一个元素,按…

计算机毕业设计——基于Android的真人社交游戏辅助应用开发

编号 本科生毕业设计(论文) 题目: 真人社交游戏辅助应用开发 专业 学 号 学生姓名 指导教师 摘 要 时至今日,社交已成为人们生活中必不可少的一部分,社交网络的盛行已经成为一种必然趋势.与此同时&a…

语音识别之Kaldi学习GMM-HMM

语音识别之Kaldi kaldi语音识别理论与实践课程学习。 前面的博客介绍了语音识别的基础知识及原理。现在开始学习实战。以Kaldi框架为基础。 Kaldi是一个有全套的语音识别代码的工具,由Dan Povey博士和捷克的BUT大学联合开发,最早发布于2011年&#xf…

文献检索工具 | 计算机类英文文献检索数据库DBLP

文章目录1.什么是DBLP?2.DBLP文献检索的3种方式2.1.检索指定会议/期刊的论文2.2.检索指定作者的论文2.3.检索指定题目的论文3.Tips:DBLP中各个颜色模块含义1.什么是DBLP? 定义: DBLP(DataBase systems and Logic Programming&…

JS 数组去重的多种方法

1. 前言 2. 普通方法数组去重 3. filter indexOf 4. ES6 的 new Set() 5. 需要注意的问题 1. 前言 本文提供两个数组变量供测试使用 const array [html, css, js, css]const resArr [html, css, css, [1], [1]]2. 普通方法数组去重 下面列举几种数组去重的方法思路都一…

JavaScript大作业 制作简单的程序员个人博客网站(web前端网页制作课作业)

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

花钱去IT培训班学习几个月软件测试真的值得吗?

为什么网上一问去IT培训机构报班学软件测试,一大堆人就会跳出来说不建议、劝退、建议自学? 为什么IT培训机构那么多坑,还有那么多学生愿意花几万块钱去学软件测试? 有人说:网上那么多的视频资料,很多都是…

五、输入输出管理(二)I/O管理概述

目录 2.1 I/O 软件层次结构 2.1.1用户层 I/O 软件 2.1.2设备独立软件 2.1.3设备驱动程序 2.2应用程序与I/O接口 2.2.1字符设备接口 2.2.2块设备接口 2.2.3网络设备接口 2.2.4阻塞/非阻塞 I/O I/O系统概述、I/O接口、I/O控制的四种方式(程序直接控制方式、程…

Trimble Tekla Structures支持14种不同的语言

Trimble Tekla Structures支持14种不同的语言 Tekla Structures被称为前Xsteel,是Trimble Software的产品,Trimble软件是一种强大的BIM机器。该软件为用户提供的环境,用户可以绘制接下来的三个模型并从中提取接下来的两个模型。该软件制作的模…