昇思25天学习打卡营第6天|数据变换 Transforms

学习目标:熟练掌握数据变换操作

  • 熟悉mindspore.dataset.transforms接口
  • 实践掌握常用变换

昇思大模型平台学习心得记录
在这里插入图片描述


一、关于mindspore.dataset.transforms

1.1 变换

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对输入张量进行唯一运算,每次只支持对一个数据列进行变换
mindspore.dataset.transforms.Relational关系运算符。

1.2图像视觉变换

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数据增强方法,基于论文AutoAugment: Learning Augmentation Strategies from Data
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.Perspective对输入图像进行透视变换
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.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对输入图像进行垂直翻转


二、实践mindspore.dataset.transforms.Compose

写法

import mindspore.dataset.transforms as transformscomposed = transforms.Compose([vision.Rescale(1.0 / 255.0, 0),vision.Normalize(mean=(0.1307,), std=(0.3081,)),vision.HWC2CHW()]
)

应用实践:手写数字Mnist数据集为例

# Begin to show your code!
# Download data from open datasets
import numpy as np
from PIL import Image
import mindspore
from mindspore import nn
from mindspore.dataset import MnistDataset, GeneratorDataset, transforms, vision, text
from download import download
from mindvision.dataset import Mnisturl = "https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/" \"notebook/datasets/MNIST_Data.zip"
# 运行过一次,后面就可注释download语句
path = download(url, "./", kind="zip", replace=True)
train_dataset = MnistDataset('MNIST_Data/train')
test_dataset = MnistDataset('MNIST_Data/test')
print(train_dataset.get_col_names())# MindSpore的dataset使用数据处理流水线(Data Processing Pipeline)
def datapipe(dataset, batch_size):image_transforms = [vision.Rescale(1.0 / 255.0, 0),vision.Normalize(mean=(0.1307,), std=(0.3081,)),vision.HWC2CHW()]label_transform = transforms.TypeCast(mindspore.int32)dataset = dataset.map(image_transforms, 'image')dataset = dataset.map(label_transform, 'label')dataset = dataset.batch(batch_size)return datasetdef my_tokenizer(content):return content.split()composed = transforms.Compose([vision.Rescale(1.0 / 255.0, 0),vision.Normalize(mean=(0.1307,), std=(0.3081,)),vision.HWC2CHW()]
)# Map vision transforms and batch dataset
train_dataset = datapipe(train_dataset, 64)
test_dataset = datapipe(test_dataset, 64)if __name__ == "__main__":train_dataset = MnistDataset('MNIST_Data/train')train_dataset = train_dataset.map(composed, 'image')image, label = next(train_dataset.create_tuple_iterator())print(image.shape)for image, label in test_dataset.create_tuple_iterator():print(f"Shape of image [N, C, H, W]: {image.shape} {image.dtype}")print(f"Shape of label: {label.shape} {label.dtype}")break

在这里插入图片描述


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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OBD诊断(ISO15031) 04服务

文章目录 功能简介ISO 9141-2、ISO 14230-4和SAE J1850的诊断服务定义1、清除/重置与排放相关的诊断信息请求消息定义2、请求与排放相关的DTC响应消息定义3、报文示例 ISO 15765-4的诊断服务定义1、请求与排放相关的DTC请求消息定义2、请求与排放相关的DTC响应消息定义3、否定响…

信息安全体系架构设计

对信息系统的安全需求是任何单一安全技术都无法解决的&#xff0c;要设计一个信息安全体系架构&#xff0c;应当选择合适的安全体系结构模型。信息系统安全设计重点考虑两个方面&#xff1b;其一是系统安全保障体系&#xff1b;其二是信息安全体系架构。 1.系统安全保障体系 安…

linux下Java11无jre文件夹的问题

项目升级需要更高级的Java版本&#xff0c;于是下载了jdk-11.0.22_linux-x64_bin.tar.gz&#xff0c;解压后jdk-11.0.22下没有jre&#xff0c;导致eclipse下“build path”无法加载jre。 Java11以上版本不在提供jre&#xff0c;Java11安装后&#xff0c;需要如下处理&#xff1…

可充电纽扣电池ML2032充电电路设计

如图&#xff0c;可充电纽扣电池ML2032充电电路设计。 图中二极管是为了防止电流倒灌&#xff0c; 电阻分压出3.66v&#xff0c;再减掉二极管压降&#xff08;约0.4v)得3.26V&#xff0c;加在电池正负极充电。 随着电池电量的积累&#xff0c;充电电流逐步减小&#xff0c;极限…

探索迁移学习:通过实例深入理解机器学习的强大方法

探索迁移学习&#xff1a;通过实例深入理解机器学习的强大方法 &#x1f341;1. 迁移学习的概念&#x1f341;2. 迁移学习的应用领域&#x1f341;2.1 计算机视觉&#x1f341;2.2 自然语言处理&#xff08;NLP&#xff09;&#x1f341;2.3 医学图像分析&#x1f341;2.4 语音…

新手教学系列——慎用Flask-SQLAlchemy慢日志记录

在使用 Flask-SQLAlchemy 开发应用时,了解和避免潜在的问题是非常重要的。特别是在常驻进程和循环执行任务的场景下,慢查询记录功能(SQLALCHEMYRECORDQUERIES)可能会引发严重的内存泄漏问题。本文将详细介绍这个问题,并提供解决方案,帮助你在开发过程中避免掉入这些陷阱。…

Java开源ERP系统Axelor汉化方法初探

Axelor简介 汉化过程介绍 定义语言和本地化 导出多语言记录 导入翻译 验证翻译 调整翻译 Axelor简介 2024年6月份Axelor ERP发布了8.1版本&#xff0c;适配JDK11及PostgreSQL12及以上版本&#xff08;7及以前版本适配JDK8及PostgreSQL10&#xff09;数据库。v8版本较之前…

Oracle - 数据库打补丁实践

原文&#xff1a;https://www.cnblogs.com/ddzj01/p/12097467.html 一、概述 本文将介绍如何给oracle数据库打最新补丁&#xff0c;数据库版本为11.2.0.4单实例&#xff0c;操作系统为redhat6.5 二、下载相关升级包 1. 登录MOS&#xff0c;查阅(ID 2118136.2)&#xff0c;下载…

TDD测试驱动开发

为什么需要TDD&#xff1f; 传统开发方式&#xff0c;带来大量的低质量代码&#xff0c;而代码质量带来的问题&#xff1a; 1.在缺陷的泥潭中挣扎 开发长时间投入在缺陷的修复中&#xff0c;修复完依赖测试做长时间的回归测试 2.维护困难&#xff0c;开发缓慢 比如重复代码&am…

Stm32的DMA的学习

一&#xff0c;介绍 二&#xff0c;DMA框图 三&#xff0c;DMA通道 四&#xff0c;相关HAL库函数 五&#xff0c;配置DMA 六&#xff0c;Stm32CubeMX配置 【13.1】减少CPU传输负载 DMA直接存储器访问—Kevin带你读《STM32Cube高效开发教程基础篇》_哔哩哔哩_bilibili

sideloadly 苹果自签和sidestore手机续签ipa记录

sideloadly 地址&#xff1a;https://sideloadly.io/#download 直接安装对应系统软件&#xff0c;然后吧ipa 拖到里面续签&#xff0c;缺点每7天需要电脑续签 如果续签保留数据需要对应的位置开启 enable file sharing 勾选 和 bundle id 修改 注意的地方需要电脑和手机appi…

echarts-wordcloud:打造个性化词云库

前言 在当今信息爆炸的时代&#xff0c;如何从海量的文本数据中提取有用的信息成为了一项重要的任务。词云作为一种直观、易于理解的数据可视化方式&#xff0c;被广泛应用于文本分析和可视化领域。本文将介绍一种基于 echarts-wordcloud 实现的词云库&#xff0c;通过其丰富的…

06-java基础——集合的复习

集合的体系结构 集合主要分为两类&#xff1a; 单列集合双列集合 一、单列集合 list系列集合&#xff1a;添加的元素是有序、可重复、有索引的。 有序&#xff1a;指的是存和取的顺序是一致的 set系列集合&#xff1a;添加的元素是无序、不可重复、无索引的。 collection&…

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

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

统计信号处理基础 习题解答11-11

题目 考虑矢量MAP估计量 证明这个估计量对于代价函数 使贝叶斯风险最小。其中&#xff1a;, &#xff0c;且. 解答 贝叶斯风险函数&#xff1a; 基于概率密度的非负特性&#xff0c;上述对积分要求最小&#xff0c;那就需要内层积分达到最小。令内层积分为&#xff1a; 上述积…

【SkiaSharp绘图12】SKCanvas方法详解(一)清空、裁切区域设置、连接矩阵、注释、弧与扇形、图集、九宫格绘图、圆

文章目录 SKCanvas 方法Clear 清空ClipPath/ClipRect/ClipRegion/ClipRoundRect 设置裁切区域Concat 连接矩阵DrawAnnotation绘制注释DrawArc绘制椭圆弧、扇形DrawAtlas绘制图集(一个图像、多个区域、多个缩放、一次绘制&#xff09;DrawBitmap绘制图像DrawBitmapNinePatch九宫…

停车场车牌识别计费系统,用Python如何实现?

关注星标&#xff0c;每天学习Python新技能 前段时间练习过的一个小项目&#xff0c;今天再看看&#xff0c;记录一下~ 项目结构 说明&#xff1a; datefile文件夹&#xff1a;保存车辆信息表的xlsx文件 file文件夹&#xff1a;保存图片文件夹。ic_launcher.jpg是窗体的右上角…

vector模拟实现【C++】

文章目录 全部的实现代码放在了文章末尾准备工作包含头文件定义命名空间和类类的成员变量 迭代器迭代器获取函数 构造函数默认构造使用n个值构造迭代器区间构造解决迭代器区间构造和用n个值构造的冲突拷贝构造 析构函数swap【交换函数】赋值运算符重载emptysize和capacityopera…

字符串知识点

API API和API帮助文档 API:目前是JDK中提供的各种功能的Java类。 这些类将底层的实现封装了起来&#xff0c;我们不需要关心这些类是如何实现的&#xff0c;只需要学习这些类如何使用即可。 API帮助文档&#xff1a;帮助开发人员更好的使用API和查询API的一个工具。 String概…

【Linux】线程封装与互斥(万字)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 文章目录 前言 C多线程的用法 对原生线程进行一次封装 理解pthread线程 Linux线程互斥 进程线程间的互斥相关背景概念 互斥量mutex 操作共享变量会有问题的售票…