昇思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…...

技术成神之路:设计模式(二)建造者模式
1.定义 建造者模式(Builder Pattern)是一种创建型设计模式,它允许你分步骤创建复杂对象,而不必直接调用构造函数。建造者模式特别适合那些包含多个组成部分并且构造过程复杂的对象。 2. 结构 建造者模式的主要组成部分包括&#…...

基于Springboot+Vue+mysql仓库管理系统仓库进销存管理系统
博主介绍: 大家好,本人精通Java、Python、C#、C、C编程语言,同时也熟练掌握微信小程序、Php和Android等技术,能够为大家提供全方位的技术支持和交流。 我有丰富的成品Java、Python、C#毕设项目经验,能够为学生提供各类…...

爬虫scrapy库精简使用大全
一、基本命令 创建项目 scrpay startproject myapp创建爬虫文件 scrapy genspider spider_name "https://www.baidu.com"运行爬虫文件 scrapy crawl spider_name一、使用代理ip 打开中间件middlewares.py,增加以下代码 class ProxyMiddleware:def process…...

Qt - 如何在新线程 (QThread)中使用一个进程 (QProcess)?
在Qt中,QThread 用于处理后台任务,而 QProcess 用于启动和管理外部程序。如果你想在一个新的 QThread 中使用 QProcess,你需要了解 QProcess 并不是专门为在特定线程中运行而设计的。实际上,QProcess 通常在创建它的线程ÿ…...

Qt绘制多线段
最近画辅助线有刚需。 画图准备增加绘制多线段功能。 有哪些方法呢? QPainter Class | Qt GUI 5.15.17 void QPainter::drawPolyline(const QPolygon &points) QPolygon Class | Qt GUI 5.15.17 QPolygon polygon; polygon << QPoint(10, 20) <&…...

去中心化革命:探索区块链技术的前沿
随着信息技术的飞速发展,区块链技术作为一种新兴的去中心化解决方案,正逐渐改变着我们的经济、社会和技术格局。本文将从区块链的基本原理、当前的应用实例以及未来的发展趋势三个方面,深入探讨区块链技术在革命性变革中的角色和影响。 1. 区…...

2024年湖南省各市科小申报时间(科技型中小企业申报流程、条件、好处)新政
湖南省各市科小申报时间流程 一、评价管理 省科技厅牵头负责科技型中小企业评价工作的组织和监督、实地核查、公示公告、入库登记及编号撤销和集中抽查工作,及时处理相关异议、投诉和举报信息。 各市州科技局负责科技型中小企业评价工作的具体实施,组…...

【JD-GUI】MacOS 中使用Java反编译工具JD-GUI
希望文章能给到你启发和灵感~ 如果觉得文章对你有帮助的话,点赞 关注 收藏 支持一下博主吧~ 阅读指南 开篇说明概念理解一、基础环境说明1.1 硬件环境1.2 软件环境 二、下载与安装2.1 选择对应版本2.2 解压运行排除异常:2.3 关于…...

C++:求梯形面积
梯形面积 已知上底15厘米,下底25厘米,问梯形面积值是多少? #include<iostream> using namespace std; int main() {//梯形的面积公式(上底下底) 高 2//上底变量、下底变量int s,d,h,m;s15;d25;h 2*150 * 2/s ;…...

学会python——在excel中写入数据(python实例十三)
目录 1.认识Python 2.环境与工具 2.1 python环境 2.2 Visual Studio Code编译 3 .想Excel中写入数据 3.1 代码构思 3.2 代码实例 3.3 运行结果 4.总结 1.认识Python Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。 Python 的设计具有很强的…...