当前位置: 首页 > news >正文

昇思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.Image
  • mindspore.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 公寓报修管理系统源码

功能结构图 效果图&#xff1a;...

jenkins 发布服务到linux服务器

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

Appium+python自动化(三十九)-Appium自动化测试框架综合实践 - 代码实现(超详解)

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

防止跨站脚本攻击XSS之Antisamy

目录 一、什么是跨站脚本攻击&#xff08;XSS&#xff09; 二、通常有哪些解决方案 三、常见的XSS攻击例子有哪些 3.1 存储型XSS攻击&#xff08;黑产恶意截流&#xff0c;跳转不法网站&#xff09; 3.2反射型XSS攻击&#xff1a; 四、什么是跨站请求伪造&#xff1f; 五…...

Python爬虫实战案例——王者荣耀皮肤抓取

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

PyTorch计算机视觉实战:目标检测、图像处理与深度学习

本书基于真实数据集&#xff0c;全面系统地阐述现代计算机视觉实用技术、方法和实践&#xff0c;涵盖50多个计算机视觉问题。全书分为四部分&#xff1a;一部分介绍神经网络和PyTorch的基础知识&#xff0c;以及如何使用PyTorch构建并训练神经网络&#xff0c;包括输入数据缩放…...

4D 生物打印:将时间维度融入,打造个性化动态组织

4D 生物打印技术将时间维度融入 3D 生物打印&#xff0c;赋予打印出的结构动态变化的能力&#xff0c;使其更接近于真实组织和器官的特性。要实现这一目标&#xff0c;需要使用智能生物材料和智能设计策略。 智能生物材料 目前用于 4D 生物打印的智能生物材料主要包括形状记忆…...

银行清算业务功能测试解析

银行清算业务是指银行间通过账户或有关货币当地清算系统&#xff0c;在办理结算和支付中用以清讫双边或多边债权债务的过程和方法。按地域划分&#xff0c;清算业务可分为国内联行清算和国际清算。常见的清算模式包括实时全额清算、净额批量清算、大额资金转账系统及小额定时清…...

CVE-2024-6387漏洞预警:尽快升级OpenSSH

OpenSSH维护者发布了安全更新&#xff0c;其中包含一个严重的安全漏洞&#xff0c;该漏洞可能导致在基于glibc的Linux系统中使用root权限执行未经身份验证的远程代码。该漏洞的代号为regreSSHion&#xff0c;CVE标识符为CVE-2024-6387。它驻留在OpenSSH服务器组件&#xff08;也…...

学习整理在php中使用PHPExcel读取excel表列数大于Z时读取不到的解决方案

php读取excel列数大于Z时读取不到 背景解决方案关键代码 背景 表格数据超过26列&#xff0c; 也就是在Z列之前没有AA列及以后的情况&#xff0c; 测试一直都没有问题&#xff0c;超过&#xff0c;就会获取不到数据了 解决方案 private function getExcelData(){//获取excel文…...

python sklearn机械学习-数据预处理

&#x1f308;所属专栏&#xff1a;【机械学习】✨作者主页&#xff1a; Mr.Zwq✔️个人简介&#xff1a;一个正在努力学技术的Python领域创作者&#xff0c;擅长爬虫&#xff0c;逆向&#xff0c;全栈方向&#xff0c;专注基础和实战分享&#xff0c;欢迎咨询&#xff01; 您…...

搜索引擎常用语法

引号 (" "): 用双引号将词组括起来&#xff0c;搜索引擎将返回包含完全相同短语的结果。 示例&#xff1a;"人工智能发展趋势" 减号 (-): 在关键词前加上减号可以排除包含特定词语的结果。 示例&#xff1a;人工智能 -机器学习&#xff08;排除包含 “机器…...

华为智能驾驶方案剖析

华为ADS智驾方案始终坚持激光雷达毫米波雷达摄像头的多传感器融合路线&#xff0c;行业降本压力下硬件配置从超配逐步转向贴合实际需求&#xff0c;带动整体硬件成本下降。 1)单车传感器数量呈现下降趋势&#xff0c;包括激光雷达从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的基础&#xff0c;在学习DDR3之前&#xff0c;我们先来学习一下SDRAM的相关知识。 1 SDRAM …...

Eureka与Spring Cloud Bus的协同:打造智能服务发现新篇章

Eureka与Spring Cloud Bus的协同&#xff1a;打造智能服务发现新篇章 在微服务架构中&#xff0c;服务发现是实现服务间通信的关键机制。Eureka作为Netflix开源的服务发现框架&#xff0c;与Spring Cloud Bus的集成&#xff0c;提供了一种动态、响应式的服务治理解决方案。本文…...

Kafka入门到精通(三)-Kafka

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

高校教师教学质量评估系统-计算机毕业设计源码03344

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

币界网讯,预计以太坊现货 ETF 将于 7 月中旬推出

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

【FFmpeg】avio_open2函数

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

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...

Zustand 状态管理库:极简而强大的解决方案

Zustand 是一个轻量级、快速和可扩展的状态管理库&#xff0c;特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来

一、破局&#xff1a;PCB行业的时代之问 在数字经济蓬勃发展的浪潮中&#xff0c;PCB&#xff08;印制电路板&#xff09;作为 “电子产品之母”&#xff0c;其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透&#xff0c;PCB行业面临着前所未有的挑战与机遇。产品迭代…...

微信小程序 - 手机震动

一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注&#xff1a;文档 https://developers.weixin.qq…...

Rust 异步编程

Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...

Python 包管理器 uv 介绍

Python 包管理器 uv 全面介绍 uv 是由 Astral&#xff08;热门工具 Ruff 的开发者&#xff09;推出的下一代高性能 Python 包管理器和构建工具&#xff0c;用 Rust 编写。它旨在解决传统工具&#xff08;如 pip、virtualenv、pip-tools&#xff09;的性能瓶颈&#xff0c;同时…...

算法岗面试经验分享-大模型篇

文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer &#xff08;1&#xff09;资源 论文&a…...

Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)

Aspose.PDF 限制绕过方案&#xff1a;Java 字节码技术实战分享&#xff08;仅供学习&#xff09; 一、Aspose.PDF 简介二、说明&#xff08;⚠️仅供学习与研究使用&#xff09;三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...

纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join

纯 Java 项目&#xff08;非 SpringBoot&#xff09;集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...

Bean 作用域有哪些?如何答出技术深度?

导语&#xff1a; Spring 面试绕不开 Bean 的作用域问题&#xff0c;这是面试官考察候选人对 Spring 框架理解深度的常见方式。本文将围绕“Spring 中的 Bean 作用域”展开&#xff0c;结合典型面试题及实战场景&#xff0c;帮你厘清重点&#xff0c;打破模板式回答&#xff0c…...