昇思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有了大概的认识,此外还了解了一般的文本数据处理流程,了解了两种数据处理模式。

打卡

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

巴图制自动化Profinet协议转Modbus协议模块连接PLC和电表通信

1、免编写Modbus轮询程序实现PLC与电表通信的方法 在智能化时代&#xff0c;工业自动控制中的PLC和电表之间的通信是一个常见的需求。传统上&#xff0c;为了使PLC与电表通信&#xff0c;通常需要编写Modbus查询程序来读取和控制数据。然而&#xff0c;使用 巴图制自动化Prof…

(十二)纹理和采样

纹理 在绘制三角形的过程中&#xff0c;将图片贴到三角形上进行显示的过程&#xff0c;就是纹理贴图的过程 uv坐标 如果如果图片尺寸和实际贴图尺寸不一致&#xff0c;就会导致像素不够用了的问题 纹理与采样 纹理对象(Texture)&#xff1a;在GPU端&#xff0c;用来以一…

安全隔离上网的有效途径:沙箱

在数字化浪潮日益汹涌的今天&#xff0c;网络安全成为了不可忽视的重要议题。沙箱技术作为一种高效的隔离机制&#xff0c;为企业和个人提供了一种在享受网络便利的同时&#xff0c;保障系统安全的解决方案。本文旨在深入探讨沙箱技术如何做到隔离上网&#xff0c;从而为用户提…

(五十二)第 8 章 动态存储管理(边界标识法)

1. 背景说明 2. 示例代码 1) errorRecord.h // 记录错误宏定义头文件#ifndef ERROR_RECORD_H #define ERROR_RECORD_H#include <stdio.h> #include <string.h> #include <stdint.h>// 从文件路径中提取文件名 #define FILE_NAME(X) strrchr(X, \\) ? strr…

QT创建地理信息shp文件编辑器shp_editor

空闲之余创建一个简单的矢量shp文件编辑器&#xff0c;加深对shp文件的理解。 一、启动程序 二、打开shp文件 三、显示shp文件的几何图形 四、双击右边表格中的feature&#xff0c;主窗体显示选中feature的各个节点。 五、鼠标在主窗体中选中feature的节点&#xff0c;按鼠标左…

js学习--制作选项卡

选项卡制作 <!DOCTYPE html> <html lang"zh"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><style>.text_one {width: 11.4%;height: 200px…

web前端开发(概述篇)

一、概念 Web是Internet上的一种多媒体信息服务系统&#xff0c;整个系统由Web服务器、浏览器和通信协议组成。 通信协议HTTP能够传输任意类型的数据对象&#xff0c;满足Web服务器与客户之间的多媒体通信的需求。 一般来说&#xff0c;Web开发分为前端&#xff08;Front-en…

番外篇 | 手把手教你如何去更换YOLOv5的检测头为ASFF_Detect

前言:Hello大家好,我是小哥谈。自适应空间特征融合(ASFF)的主要原理旨在解决单次检测器中不同尺度特征的不一致性问题。具体来说,ASFF通过动态调整来自不同尺度特征金字塔层的特征贡献,确保每个检测对象的特征表示是一致且最优的。本文所做出的改进是将YOLOv5的检测头更换…

身边的故事(十三):阿文的故事:出现

如果他知道一件事情如果违背正常的市场规律就是骗局或者存在巨大的风险&#xff0c;比如市场正常投资回报率在5-6%已经算高回报&#xff0c;像股神巴菲特的投资回报率应该不会超过10%吧。那些说20-30%甚至更高回报率肯定是骗局。如果...哪有那么多如果&#xff0c;人生每一秒都…

从4D CT灌注成像中使用时空卷积神经网络预测急性缺血性中风的特定治疗病变结果| 文献速递-深度学习自动化疾病检查

Title 题目 Predicting treatment-specific lesion outcomes in acute ischemic stroke from 4D CT perfusion imaging using spatio-temporal convolutional neural networks 从4D CT灌注成像中使用时空卷积神经网络预测急性缺血性中风的特定治疗病变结果 01 文献速递介绍…

【电商指标详解】

前言&#xff1a; &#x1f49e;&#x1f49e;大家好&#xff0c;我是书生♡&#xff0c;本篇文章主要和大家分享一下电商行业中常见指标的详解&#xff01;存在的原因和作用&#xff01;&#xff01;&#xff01;希望对大家有所帮助。 &#x1f49e;&#x1f49e;代码是你的画…

打卡第一天

今天是参加算法训练营的第一天&#xff0c;希望我能把这个训练营坚持下来&#xff0c;希望我的算法编程题的能力有所提升&#xff0c;不再面试挂了&#xff0c;面试总是挂编程题&#xff0c;记录我leetcode刷题数量&#xff1a; 希望我通过这个训练营能够实现两份工作的无缝衔接…

Vue项目打包上线

Nginx 是一个高性能的开源HTTP和反向代理服务器&#xff0c;也是一个IMAP/POP3/SMTP代理服务器。它在设计上旨在处理高并发的请求&#xff0c;是一个轻量级、高效能的Web服务器和反向代理服务器&#xff0c;广泛用于提供静态资源、负载均衡、反向代理等功能。 1、下载nginx 2、…

2024企业数据资产化及数据资产入表方案梳理

01 数据资产入表&#xff1a;是一个将组织的各类数据资产进行登记、分类、评估和管理的流程。 数据资产包括&#xff1a;客户信息、交易记录、产品数据、财务数据等。 做个比喻吧&#xff1a;数据资产入表就像是给公司的数据资产做“人口普查”—— ①找出公司有哪些数据找…

python中的文件

1.什么是文件&#xff1f; 硬盘上存储的数据都是以文件的形式来组织的~ 文件是数据在硬盘上的存储形式&#xff0c;不同的数据在硬盘上的存储形式是不同的&#xff0c; 2.文件路径 文件夹/目录。 文件夹&#xff0c;再包含文件夹的情况&#xff0c;这就是一个嵌套的关系&…

顺序表--数据结构第一关

顺序表 数据结构概念 定义&#xff1a;数据结构是计算机存储、组织数据的⽅式 根据学过C语言的基础上&#xff0c;数组是最简单的数据结构 顺序表的底层就是数组 为什么呢&#xff1f; 例子如下&#xff1a; int arr[100]{1,2,3,4,5}; //修改某一个数据&#xff1a;arr[…

电子部件烧录流程(仅供参考)

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a;日常聊聊 ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 前言 正文 部件烧录流程的详细步骤 1. 准备工作 2. 连接硬件 3. 配置烧录软件 4. 校验和设置 5. 开始烧录 6. 验证和测试 7. 断开…

吉利银河L6 AQS空气质量监控系统

结论 顶配才有AQS 开启空调且auto模式 则默认开启AQS 无法关闭AQS AQS的作用 银河L6 AQS触发 和 图标 AQS官方配置参数 官方文档 吉利用户手册

机器学习基础概念

1.机器学习定义 2.机器学习工作流程 &#xff08;1&#xff09;数据集 ①一行数据&#xff1a;一个样本 ②一列数据&#xff1a;一个特征 ③目标值&#xff08;标签值&#xff09;&#xff1a;有些数据集有目标值&#xff0c;有些数据集没有。因此数据类型由特征值目标值构成或…

数据结构与算法笔记:实战篇 - 剖析微服务接口鉴权限流背后的数据结构和算法

概述 微服务是最近几年才兴起的概念。简单点将&#xff0c;就是把复杂的大应用&#xff0c;解耦成几个小的应用 。这样做的好处有很多。比如&#xff0c;这样有利于团队组织架构的拆分&#xff0c;比较团队越大协作的难度越大&#xff1b;再比如&#xff0c;每个应用都可以独立…