昇思25天学习打卡营第05天 | 数据变换 Transforms
昇思25天学习打卡营第05天 | 数据变换 Transforms
文章目录
- 昇思25天学习打卡营第05天 | 数据变换 Transforms
- Common Transforms
- Compose
- Vision Transforms
- Text Transform
- PythonTokenizer
- Lookup
- Lambda Transforms
- 数据处理模式
- Pipeline模式
- Eager模式
- 总结
- 打卡
通常情况下的原始数据不能直接输入到网络中进行训练,需要对数据进行预处理。
mindspoer.dataset
提供了面向图像、文本、音频等数据类型的Transforms,也支持Lambda函数。
Common Transforms
mindspore.dataset.transforms.Compose
:将多个数据增强操作组合使用;mindspore.dataset.transforms.Concatenate
:在输入数据的某一个轴上进行数组拼接,目前仅支持1D数组的拼接;mindspore.dataset.transforms.Duplicate
:将输入的数据列复制得到新的数据列,每次仅可以输入1个数据列进行复制;mindspore.dataset.transforms.Fill
:将Tensor的所有元素填充为指定值;mindspore.dataset.transforms.Mask
:用给定条件判断输入的 Tensor,返回一个掩码Tensor;mindspore.dataset.transforms.OneHot
:对标签进行OneHot编码;mindspore.dataset.transforms.PadEnd
:对输入Tensor进行填充,要求pad_shape与输入Tensor的维度一致;mindspore.dataset.transforms.RandomApply
:指定一组数据增强处理及被应用的概率;mindspore.dataset.transforms.RandomChoice
:从一组数据增强变换中随机选择一个进行应用;mindspore.dataset.transforms.RandomOrder
:随机打乱数据增强处理的顺序;mindspore.dataset.transforms.Slice
:对输入进行切片;mindspore.dataset.transforms.TypeCast
:将输入Tensor转换为指定类型;mindspore.dataset.transforms.Unique
:对输入张量进行唯一运算,每次只支持对一个数据列进行变换。
Compose
composed = transforms.Compose([vision.Rescale(1.0 / 255.0, 0),vision.Normalize(mean=(0.1307,), std=(0.3081,)),vision.HWC2CHW()]
)
通过Compose
将缩放、标准化、图像格式转换组合为一个变换进行使用。
Vision Transforms
mindspore.dataset.vision.AdjustBrightness
:调整亮度;mindspore.dataset.vision.AdjustContrast
:调整对比度;mindspore.dataset.vision.AdjustGamma
:伽马矫正;mindspore.dataset.vision.AdjustHue
:调整色调;mindspore.dataset.vision.AdjustSaturation
:调整饱和度;mindspore.dataset.vision.AdjustSharpness
:调整锐度;mindspore.dataset.vision.Affine
:进行仿射变换,保持图像中心不动;mindspore.dataset.vision.AutoAugment
:应用AutoAugment数据增强方法;mindspore.dataset.vision.AutoContrast
:自动对比度;mindspore.dataset.vision.BoundingBoxAugment
:随即标注边界框区域,应用给定图像变换;mindspore.dataset.vision.CenterCrop
:对输入图像中心区域裁剪;mindspore.dataset.vision.ConvertColor
:更改色彩空间;mindspore.dataset.vision.Crop
:裁剪指定区域;mindspore.dataset.vision.CutMixBatch
:对输入批次的图像和标注应用剪切混合转换;mindspore.dataset.vision.CutOut
:裁剪给定数量的正方形区域;mindspore.dataset.vision.Decode
:解码为RGB格式;mindspore.dataset.vision.Equalize
:直方图均衡化;mindspore.dataset.vision.Erase
:使用指定的值擦除输入图像;mindspore.dataset.vision.FiveCrop
:在输入PIL图像的中心和四个角处分别裁剪指定大小的子图;mindspore.dataset.vision.GaussianBlur
:使用指定的高斯核对输入图形进行模糊;mindspore.dataset.vision.Grayscale
:将输入PIL图像转换为灰度图;mindspore.dataset.vision.HorizontalFlip
:水平翻转;mindspore.dataset.vision.HsvToRgb
:将输入的HSV格式numpy.ndarray转换为RGB格式;mindspore.dataset.vision.HWC2CHW
:将图像的shape从<H, W, C>转换为<C, H, W>;mindspore.dataset.vision.Invert
:对RGB图像进行色彩反转;mindspore.dataset.vision.LinearTransformation
:使用指定的变换方阵和均值向量对输入的numpy.ndarray图像进行线性变换;mindspore.dataset.vision.MixUp
:随机混合一批输入的numpy.ndarray图像及其标签;mindspore.dataset.vision.MixUpBatch
:对输入批次的图像和标签应用混合转换;mindspore.dataset.vision.Normalize
:根据均值和方差对输入图像归一化;mindspore.dataset.vision.NormalizePad
:根据均值和方差对输入图像归一化,然后填充一个全零的额外通道;mindspore.dataset.vision.Pad
:填充图像;mindspore.dataset.vision.PadToSize
:将图像填充到固定大小;mindspore.dataset.vision.Perspecctive
:进行透视变换;mindspore.dataset.vision.Posterize
:减少图像颜色通道的比特位数,使图像变得高对比和颜色鲜艳,类似于海报或印刷品的效果;mindspore.dataset.vision.RandAugment
:应用RandAugment数据增强方法;mindspore.dataset.vision.RandomAdjustSharpness
:以给定概率随机调整锐度;mindspore.dataset.vision.RandomAffine
:应用随机仿射变换;mindspore.dataset.vision.RandomAutoContrast
:以给定概率自动调整对比度;mindspore.dataset.vision.RandomColor
:随即调整颜色;mindspore.dataset.vision.RandomColorAdjust
:随机调整亮度、对比度、饱和度和色调;mindspore.dataset.vision.RandomCrop
:随机区域裁剪;mindspore.dataset.vision.RandomCropDecodeResize
:裁剪、解码、调整尺寸大小的组合;mindspore.dataset.vision.RandomCropWithBBox
:在随机位置进行裁剪并调整边界框;mindspore.dataset.vision.RandomEqualize
:以给定概率随机进行直方图均衡化;mindspore.dataset.vision.RandomErasing
:按照指定的概率擦除numpy.ndarray图像上随机矩形区域内的像素;mindspore.dataset.vision.RandomGrayscale
:按指定概率将PIL图像转换为灰度图;mindspore.dataset.vision.RandomHorizontalFlip
:按概率随机进行水平翻转;mindspore.dataset.vision.RandomHorizontalFlipWithBBox
:按概率对输入图形及其边界框进行随机水平翻转;mindspore.dataset.vision.RandomInvert
:按概率随机反转图像颜色;mindspore.dataset.vision.RandomLighting
:将AlexNet PCA的噪声添加到图像中;mindspore.dataset.vision.RandomPerspective
:按概率对PIL图像进行透视变换;mindspore.dataset.vision.RandomPosterize
:随机减少图像颜色通道的比特位数,使图像变得高对比度和颜色鲜艳;mindspore.dataset.vision.RandomResizedCrop
:对输入图像随机裁剪,并使用指定的mindspore.dataset.vision.Inter
插值方式调整为指定尺寸大小;mindspore.dataset.vision.RandomResizedCropWithBBox
:对输入图形随机裁剪且随机调整纵横比,并将处理后的图像调整为指定的尺寸大小,并调整边界框;mindspore.dataset.vision.RandomResize
:使用随机选择的mindspore.dataset.vision.Inter
插值方式去调整尺寸大小;mindspore.dataset.vision.RandomResizeWithBBox
:使用随机选择的mindspore.dataset.vision.Inter
插值方式去调整它的尺寸大小,并调整边界框的尺寸大小;mindspore.dataset.vision.RandomRotation
:在指定角度范围内,随机旋转输入图形;mindspore.dataset.vision.RandomSelectSubpolicy
:从策略列表中随机选择一个子策略应用于输入图像;mindspore.dataset.vision.RandomSharpness
:在固定或随即范围内调整锐度;mindspore.dataset.vision.RandomSolarize
:在给定阈值范围内随机选择一个子范围,对子范围内的像素,将像素值设置为(255-原像素);mindspore.dataset.vision.RandomVerticalFlip
:以概率随机进行垂直翻转;mindspore.dataset.vision.RandomVerticalFlipWithBBox
:以概率对图像和边界框进行随机垂直翻转;mindspore.dataset.vision.Rescale
:基于给定缩放因子和平移因子调整像素值;mindspore.dataset.vision.Resize
:使用给定的mindspore.dataset.vision.Inter
插值方式调整为指定的尺寸大小;mindspore.dataset.vision.ResizedCrop
:裁切图像指定区域并放缩到指定大小;mindspore.dataset.vision.ResizeWithBBox
:调整给定尺寸大小,并调整边界框的尺寸大小;mindspore.dataset.vision.RgbToHsv
:将RGB格式的numpy.ndarray图像转换为HSV格式;mindspore.dataset.vision.Rotate
:旋转指定度数;mindspore.dataset.vision.SlicePatches
:在水平和垂直方向上将Tensor切片为多个块;mindspore.dataset.vision.Solarize
:通过反转阈值内的所有像素值,对输入图形进行曝光;mindspore.dataset.vision.TenCrop
:在输入PIL图像的中心与四个角处分别裁剪为指定尺寸大小的子图,并将其翻转图一并返回;mindspore.dataset.vision.ToNumpy
:将输入PIL图像转换为numpy.ndarray图像;mindspore.dataset.vision.ToPIL
:将numpy.ndarray格式的解码图像转换为PIL.Image.Imagemindspore.dataset.vision.ToTensor
:将PIL图像或numpy.ndarray图像转换为指定类型的numpy.ndarray图像,像素从 [ 0 , 255 ] [0, 255] [0,255]放缩为 [ 0.0 , 1.0 ] [0.0, 1.0] [0.0,1.0],shape将从<H, W, C> 调整为 <C, H, W>;mindspore.dataset.vision.ToType
:将输入转换为指定MindSpore或NumPy数据类型;mindspore.dataset.vision.TrivialAugmentWide
:使用TrivialAugmentWide数据增强方法;mindspore.dataset.vision.UniformAugment
:从指定序列中均匀采样一批数据处理操作,并按顺序随机执行;mindspore.dataset.vision.VerticalFlip
:垂直翻转。
Text Transform
文本数据需要有分词(Tokenize)、构建词表、Token转Index等操作。
PythonTokenizer
分词操作时文本数据的基础处理方法,PythonTokenizer允许用户自由实现分词策略,随后利用map
操作将分词器应用到输入文本中:
texts = ['Welcome to Beijing']
test_dataset = GeneratorDataset(texts, 'text')def my_tokenizer(content):return content.split()test_dataset = test_dataset.map(text.PythonTokenizer(my_tokenizer))
Lookup
Lookup
为词表映射变换,用来将Token转换为Index。使用Lookup
之前需要构造词表,一般可以加载已有的词表或使用Vocab
生成词表。
vocab = text.Vocab.from_dataset(test_dataset)
test_dataset = test_dataset.map(text.Lookup(vocab))
Lambda Transforms
Lanbda Transform可以加载任意定义的Lambda函数,提供足够的灵活度。
test_dataset = GeneratorDataset([1, 2, 3], 'data', shuffle=False)
test_dataset = test_dataset.map(lambda x: x * 2)def func(x):return x * x + 2
test_dataset = test_dataset.map(lambda x: func(x))
数据处理模式
Pipeline模式
Pipeline模式需要使用map
方法,将数据变换交由map
调度,由map
负责启动和执行给定的Transform。
这种模式能够在资源条件下允许的情况下获得更高的性能。
Eager模式
在Eager模式下,执行Transforms不需要依赖map
,而是直接以函数式调用的方式执行Transforms。因此代码更为简洁且能立即执行得到结果,适合在小型数据增强实验、模型推理等轻量化场景中使用。
总结
通过这一小节的内容,对MindSpore中的数据变换有了深入的了解,通过查阅官方文档,对每一类数据所提供的Transform有了大概的认识,此外还了解了一般的文本数据处理流程,了解了两种数据处理模式。
打卡
相关文章:

昇思25天学习打卡营第05天 | 数据变换 Transforms
昇思25天学习打卡营第05天 | 数据变换 Transforms 文章目录 昇思25天学习打卡营第05天 | 数据变换 TransformsCommon TransformsCompose Vision TransformsText TransformPythonTokenizerLookup Lambda Transforms数据处理模式Pipeline模式Eager模式 总结打卡 通常情况下的原始…...

Springboot+MySQL 公寓报修管理系统源码
功能结构图 效果图:...

jenkins 发布服务到linux服务器
1.环境准备 1.1 需要一台已经部署了jenkins的服务器,上面已经集成好了,jdk、maven、nodejs、git等基础的服务。 1.2 需要安装插件 pusblish over ssh 1.3 准备一台额外的linux服务器,安装好jdk 2.流程描述 2.1 配置jenkins,包括p…...

Appium+python自动化(三十九)-Appium自动化测试框架综合实践 - 代码实现(超详解)
1.简介 今天我们紧接着上一篇继续分享Appium自动化测试框架综合实践 - 代码实现。由于时间的关系,宏哥这里用代码给小伙伴演示两个模块:注册和登录。 2.业务模块封装 因为现在各种APP的层出不群,各式各样的。但是其大多数都有注册、登录。为…...

防止跨站脚本攻击XSS之Antisamy
目录 一、什么是跨站脚本攻击(XSS) 二、通常有哪些解决方案 三、常见的XSS攻击例子有哪些 3.1 存储型XSS攻击(黑产恶意截流,跳转不法网站) 3.2反射型XSS攻击: 四、什么是跨站请求伪造? 五…...

Python爬虫实战案例——王者荣耀皮肤抓取
大家好,我是你们的老朋友——南枫,今天我们一起来学习一下该如何抓取大家经常玩的游戏——王者荣耀里面的所有英雄的皮肤。 老规矩,直接上代码: 导入我们需要使用到的,也是唯一用到的库: 我们要抓取皮肤其…...

PyTorch计算机视觉实战:目标检测、图像处理与深度学习
本书基于真实数据集,全面系统地阐述现代计算机视觉实用技术、方法和实践,涵盖50多个计算机视觉问题。全书分为四部分:一部分介绍神经网络和PyTorch的基础知识,以及如何使用PyTorch构建并训练神经网络,包括输入数据缩放…...

4D 生物打印:将时间维度融入,打造个性化动态组织
4D 生物打印技术将时间维度融入 3D 生物打印,赋予打印出的结构动态变化的能力,使其更接近于真实组织和器官的特性。要实现这一目标,需要使用智能生物材料和智能设计策略。 智能生物材料 目前用于 4D 生物打印的智能生物材料主要包括形状记忆…...
银行清算业务功能测试解析
银行清算业务是指银行间通过账户或有关货币当地清算系统,在办理结算和支付中用以清讫双边或多边债权债务的过程和方法。按地域划分,清算业务可分为国内联行清算和国际清算。常见的清算模式包括实时全额清算、净额批量清算、大额资金转账系统及小额定时清…...

CVE-2024-6387漏洞预警:尽快升级OpenSSH
OpenSSH维护者发布了安全更新,其中包含一个严重的安全漏洞,该漏洞可能导致在基于glibc的Linux系统中使用root权限执行未经身份验证的远程代码。该漏洞的代号为regreSSHion,CVE标识符为CVE-2024-6387。它驻留在OpenSSH服务器组件(也…...
学习整理在php中使用PHPExcel读取excel表列数大于Z时读取不到的解决方案
php读取excel列数大于Z时读取不到 背景解决方案关键代码 背景 表格数据超过26列, 也就是在Z列之前没有AA列及以后的情况, 测试一直都没有问题,超过,就会获取不到数据了 解决方案 private function getExcelData(){//获取excel文…...

python sklearn机械学习-数据预处理
🌈所属专栏:【机械学习】✨作者主页: Mr.Zwq✔️个人简介:一个正在努力学技术的Python领域创作者,擅长爬虫,逆向,全栈方向,专注基础和实战分享,欢迎咨询! 您…...
搜索引擎常用语法
引号 (" "): 用双引号将词组括起来,搜索引擎将返回包含完全相同短语的结果。 示例:"人工智能发展趋势" 减号 (-): 在关键词前加上减号可以排除包含特定词语的结果。 示例:人工智能 -机器学习(排除包含 “机器…...

华为智能驾驶方案剖析
华为ADS智驾方案始终坚持激光雷达毫米波雷达摄像头的多传感器融合路线,行业降本压力下硬件配置从超配逐步转向贴合实际需求,带动整体硬件成本下降。 1)单车传感器数量呈现下降趋势,包括激光雷达从3个减配至1个、毫米波雷达从6R减配至3R、摄像…...

DDR3(一)
目录 1 SDRAM1.1 同步动态随机存储器1.2 位宽1.3 SDRAM结构1.4 SDRAM引脚图 2 SDRAM操作指令2.1 读写指令2.2 刷新和预充电2.3 配置模式寄存器2.4 读/写突发2.5 数据屏蔽 SDRAM是DDR3的基础,在学习DDR3之前,我们先来学习一下SDRAM的相关知识。 1 SDRAM …...
Eureka与Spring Cloud Bus的协同:打造智能服务发现新篇章
Eureka与Spring Cloud Bus的协同:打造智能服务发现新篇章 在微服务架构中,服务发现是实现服务间通信的关键机制。Eureka作为Netflix开源的服务发现框架,与Spring Cloud Bus的集成,提供了一种动态、响应式的服务治理解决方案。本文…...

Kafka入门到精通(三)-Kafka
Kafka简介 Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动…...

高校教师教学质量评估系统-计算机毕业设计源码03344
摘要 在高等教育中,教学质量是培养优秀人才的关键。为了提高教学质量,高校需要建立一套科学、有效的教师教学质量评估系统。本研究采用 SSM技术框架,旨在开发一款高校教师教学质量评估系统。 SSM框架作为一种成熟的Java开发框架,具…...

币界网讯,预计以太坊现货 ETF 将于 7 月中旬推出
刚刚 ETF Store 总裁 Nate Geraci 在 X (前Twitter)平台上宣布,备受数字货币市场期待的SEC以太坊现货 ETF提案,将于7 月中旬通过美国证券交易委员会(SEC)批准。Nate Geraci透露修订后的 S-1 文件将于 7 月 …...

【FFmpeg】avio_open2函数
【FFmpeg】avio_open2函数 1.avio_open21.1 创建URLContext(ffurl_open_whitelist)1.1.1 创建URLContext(ffurl_alloc)1.1.1.1 查找合适的protocol(url_find_protocol)1.1.1.2 为查找到的URLProtocol创建UR…...

【WiFi帧结构】
文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成:MAC头部frame bodyFCS,其中MAC是固定格式的,frame body是可变长度。 MAC头部有frame control,duration,address1,address2,addre…...
OkHttp 中实现断点续传 demo
在 OkHttp 中实现断点续传主要通过以下步骤完成,核心是利用 HTTP 协议的 Range 请求头指定下载范围: 实现原理 Range 请求头:向服务器请求文件的特定字节范围(如 Range: bytes1024-) 本地文件记录:保存已…...

C# 类和继承(抽象类)
抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...

PL0语法,分析器实现!
简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...
【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具
第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...
JAVA后端开发——多租户
数据隔离是多租户系统中的核心概念,确保一个租户(在这个系统中可能是一个公司或一个独立的客户)的数据对其他租户是不可见的。在 RuoYi 框架(您当前项目所使用的基础框架)中,这通常是通过在数据表中增加一个…...
管理学院权限管理系统开发总结
文章目录 🎓 管理学院权限管理系统开发总结 - 现代化Web应用实践之路📝 项目概述🏗️ 技术架构设计后端技术栈前端技术栈 💡 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 🗄️ 数据库设…...

Selenium常用函数介绍
目录 一,元素定位 1.1 cssSeector 1.2 xpath 二,操作测试对象 三,窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四,弹窗 五,等待 六,导航 七,文件上传 …...

Unity UGUI Button事件流程
场景结构 测试代码 public class TestBtn : MonoBehaviour {void Start(){var btn GetComponent<Button>();btn.onClick.AddListener(OnClick);}private void OnClick(){Debug.Log("666");}}当添加事件时 // 实例化一个ButtonClickedEvent的事件 [Formerl…...