当前位置: 首页 > 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…...

C++_核心编程_多态案例二-制作饮品

#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为&#xff1a;煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例&#xff0c;提供抽象制作饮品基类&#xff0c;提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...

(十)学生端搭建

本次旨在将之前的已完成的部分功能进行拼装到学生端&#xff0c;同时完善学生端的构建。本次工作主要包括&#xff1a; 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...

JDK 17 新特性

#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持&#xff0c;不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的&#xff…...

以光量子为例,详解量子获取方式

光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学&#xff08;silicon photonics&#xff09;的光波导&#xff08;optical waveguide&#xff09;芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中&#xff0c;光既是波又是粒子。光子本…...

【生成模型】视频生成论文调研

工作清单 上游应用方向&#xff1a;控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...

音视频——I2S 协议详解

I2S 协议详解 I2S (Inter-IC Sound) 协议是一种串行总线协议&#xff0c;专门用于在数字音频设备之间传输数字音频数据。它由飞利浦&#xff08;Philips&#xff09;公司开发&#xff0c;以其简单、高效和广泛的兼容性而闻名。 1. 信号线 I2S 协议通常使用三根或四根信号线&a…...

Java数值运算常见陷阱与规避方法

整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...

【JavaSE】多线程基础学习笔记

多线程基础 -线程相关概念 程序&#xff08;Program&#xff09; 是为完成特定任务、用某种语言编写的一组指令的集合简单的说:就是我们写的代码 进程 进程是指运行中的程序&#xff0c;比如我们使用QQ&#xff0c;就启动了一个进程&#xff0c;操作系统就会为该进程分配内存…...

TSN交换机正在重构工业网络,PROFINET和EtherCAT会被取代吗?

在工业自动化持续演进的今天&#xff0c;通信网络的角色正变得愈发关键。 2025年6月6日&#xff0c;为期三天的华南国际工业博览会在深圳国际会展中心&#xff08;宝安&#xff09;圆满落幕。作为国内工业通信领域的技术型企业&#xff0c;光路科技&#xff08;Fiberroad&…...