昇思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.mzph.cn/pingmian/40112.shtml

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

相关文章

最靓丽的C++开源通知弹框SnoreToasts自动监听软件及网页通知

SnoreToasts&#xff0c;作为一款轻量级的C开源项目&#xff0c;为开发者提供了一个便捷的方式来在Windows操作系统上展示通知弹框&#xff08;Toast Notifications&#xff09;。 特点与优势 轻量级&#xff1a;SnoreToasts采用了简洁的代码设计&#xff0c;避免了不必要的依…

Zabbix 配置端口监控

Zabbix 端口监控简介 在Zabbix中配置端口监控&#xff0c;可以帮助你实时监控服务器或网络设备上的特定端口是否开放和可访问。Zabbix提供了多种方式来监控端口&#xff0c;主要包括简单的端口可用性检查和更复杂的服务监控。 在Zabbix中进行端口监控时&#xff0c;不一定需要…

AI赋能视创云展元宇宙展厅,打造沉浸式智能观展体验!

在AI人工智能迅猛发展的背景下&#xff0c;视创云展将元宇宙展厅与“AI智能助手”深度融合&#xff0c;这无疑是一次前瞻性的创新尝试&#xff0c;极大地丰富了展览展示的形式与内容&#xff0c;为参观者打造了一个既沉浸又智能的观展新纪元。 一、沉浸式体验 元宇宙展厅利用虚…

【数据分析】通过python分析提取matlab工作区中的数据

#%% import scipy.io import pandas as pd import numpy as np# Load the .mat file file_path clay_C.mat mat_data scipy.io.loadmat(file_path)## 建立结果表格 # 定义行、列名 columns [0.1, 0.5, 1, 2, 3, 4, 5] index [0.1, 0.5, 1, 2, 3, 4, 5]my_psnrs_mean pd.Da…

OpenAI 向少部分用户推出 GPT-4o(S2S)模型;Meta 发布 3D Gen AI 模型丨 RTE 开发者日报

开发者朋友们大家好&#xff1a; 这里是 「RTE 开发者日报」 &#xff0c;每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE&#xff08;Real-Time Engagement&#xff09; 领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「…

题目汇总三

Question One 函数应用 import java.util.Arrays;public class Main{public static void main(String[] args){String s1 "you are a student";String s2 "you are a ";// 判断前缀if(s1.startsWith(s2)){System.out.println("\"" s1 &…

【Python】基于动态规划和K聚类的彩色图片压缩算法

引言 当想要压缩一张彩色图像时&#xff0c;彩色图像通常由数百万个颜色值组成&#xff0c;每个颜色值都由红、绿、蓝三个分量组成。因此&#xff0c;如果我们直接对图像的每个像素进行编码&#xff0c;会导致非常大的数据量。为了减少数据量&#xff0c;我们可以尝试减少颜色…

Redis理解【精细】【快速上手】

目录 1. 了解3V和3高 2.什么是redis 3. redis可以做什么 4. Windows安装 5. 使用redis客户端操作redis 5.1 redis基本命令 5.1.1 切换数据库 5.1.2 查看当前数据库的大小 5.1.3 查看当前数据库所有的key ​​​​​​​ 5.1.4 清空当前数据库所有key 5.1.5 清空所…

Element 的 el-table 表格实现单元格合并

html 部分 <template><div class"index-wapper"><el-table :data"tableData" :span-method"objectSpanMethod" border><el-table-column v-for"(item, index) in tableHeader" :key"index" :prop&quo…

vue中使用amis(做管理后台渲染器)

0.导入amis sdk 在github上下载 sdk.tar.gz&#xff1a;https://github.com/baidu/amis/releases 若网速不行&#xff0c;github下载不下来&#xff0c;可以这样&#xff1a; yarn add amis&#xff0c;然后在 node_modules\amis\sdk 目录里就能找到相关资源 public/index.…

Android Studio上传新项目到Gitee

一、在Gitee上创建仓库 首先需要再Gitee上创建仓库 1、在Gitee中新建仓库 2、输入仓库信息 3、生成仓库地址 创建成功会生成一个仓库地址&#xff0c;格式如下&#xff1a; https://gitee.com/test/compose_mvi_demo.git二、Android Studio 上传项目到Gitee 1、在Android …

全局优化与目标优化的异同

从porgo和optimtool的使用来解释 在多模态问题中&#xff0c;多数全局优化算法是通过设置跳跃局部最优点的比率来完成全局最优的搜索&#xff0c;这类算法需要利用到一阶梯度的局部信息&#xff0c;以至于演进方向的分叉导致了算法的执行复杂度按照搜索次数倍增。首先&#xf…

微信小程序转发朋友圈详细教程

微信小程序转发朋友圈功能&#xff0c;官方说的很官方&#xff0c;容易踩坑 官方链接戳这里 想分享朋友圈必须要分享好友 onShareTimeline() { } 想要生效必须先定义 onShareAppMessage() { } /*** 用户点击右上角分享*/onShareAppMessage() { },onShareTimeline() { } 简单…

不锈钢酸退作业区冷线氮氧分析仪采样系统优化改造

不锈钢酸退作业区冷线氮氧分析仪采样系统优化改造 一、项目提出前状况: (一)不锈钢酸退作业区酸洗线脱氮系统使用的废气监测仪器氮氧分析仪属于环保设备,数据检测的准确性直接影响环保指标,因此一旦数据检测有误,势必会引起环保事件。脱氮系统是将酸洗过程中产生的酸雾通…

一维信号全变分(TV)降噪方法(MATLAB)

信号降噪一直是领域研究的热点&#xff0c;这是一项十分有意义并且极具挑战性的工作&#xff0c;经过几十年来相关科研人员的共同努力&#xff0c;降噪技术得到了极大的发展&#xff0c;并在现实生活中也得到了广泛的应用。其中&#xff0c;许多常用的方法有&#xff1a;小波变…

深入Django(三)

Django视图&#xff08;Views&#xff09;详解 引言 在前两天的博客中&#xff0c;我们介绍了Django的基本概念和模型系统。今天&#xff0c;我们将深入探讨Django的视图&#xff08;Views&#xff09;&#xff0c;它们是处理用户请求和返回响应的地方。 什么是Django视图&a…

Golang 单引号、双引号和反引号的概念、用法以及区别

在 Golang&#xff08;Go 语言&#xff09;中&#xff0c;单引号 ()、双引号 (") 和反引号 () 用于不同类型的字符串和字符表示。以下是它们的概念、用法和区别&#xff1a; 1. 单引号 () 概念 单引号用于表示 字符&#xff08;rune 类型&#xff09;。一个字符表示一个…

免费最好用的证件照制作软件,一键换底+老照片修复+图片动漫化,吊打付费!

这款软件真的是阿星用过的&#xff0c;最好用的证件照制作软件&#xff0c;没有之一&#xff01; 我是阿星&#xff0c;今天要给大家安利一款超实用的证件照工具&#xff0c;一键换底&#xff0c;自动排版&#xff0c;免费无广告&#xff0c;让你在家就能轻松搞定证件照&#…

尚玩助手短视频看广告app开发

尚玩助手短视频看广告app的开发涉及多个关键步骤和考虑因素。以下是其主要开发流程&#xff1a; 需求分析和规划&#xff1a; 确定目标用户群体和市场定位。 收集和分析竞争对手的数据和特点&#xff0c;了解市场上已有的短视频app的优缺点。 确定尚玩助手短视频app的功能和特…

搭建知识付费系统的技术框架与实现路径

知识付费系统已经成为内容创作者和企业变现的重要工具。要成功搭建一个高效、稳定、用户体验良好的知识付费系统&#xff0c;明确技术框架和实现路径至关重要。本文将详细解析搭建知识付费系统的技术框架&#xff0c;并提供具体的实现路径和相关技术代码示例。 一、知识付费系…