昇思MindSpore进阶教程--轻量化数据处理

news2024/9/27 13:58:22

大家好,我是刘明,明志科技创始人,华为昇思MindSpore布道师。
技术上主攻前端开发、鸿蒙开发和AI算法研究。
努力为大家带来持续的技术分享,如果你也喜欢我的文章,就点个关注吧

正文开始

在资源条件允许的情况下,为了追求更高的性能,一般使用Pipeline模式执行数据变换Transforms。

基于Pipeline模式执行的最大特点是需要使用map方法,如下图中将Resize、Crop、HWC2CHW交由map调度,由其负责启动和执行给定的Transform,对Pipeline的数据进行映射变换。
在这里插入图片描述

虽然构建数据管道可以批量处理输入数据,但是数据管道的API设计要求用户从构建输入源开始,逐步定义数据管道中的各个Transform,仅当在定义map的时候才会涉及与用户输入数据高度相关的Transform。

无疑,用户只想重点关注这些与其相关度最高的代码,但其他相关度较低的代码却在整个代码场景中为用户增加了不必要的负担。

因此,MindSpore提供了一种轻量化的数据处理执行方式,称为Eager模式。

在Eager模式下,执行Transforms不需要依赖构建数据管道map,而是以函数式调用的方式执行Transforms。因此代码编写会更为简洁且能立即执行得到运行结果,推荐在小型数据增强实验、模型推理等轻量化场景中使用。
在这里插入图片描述

MindSpore目前支持在Eager模式执行各种Transform,具体如下所示,更多数据变换接口参见API文档。

  • vision模块
    子模块transforms,基于OpenCV/Pillow实现的数据变换。
  • text模块
    子模块transforms,基于Jieba/ICU4C等库实现的数据变换。
  • transforms模块
    子模块transforms,基于C++/Python/NumPy实现的通用数据变换。

Eager模式

下面将简要介绍各Transforms模块的Eager模式使用方法。使用Eager模式,只需要将Transform本身当成可执行函数即可。

数据准备

以下示例代码将图片数据下载到指定位置。

from download import download

url = "https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/notebook/datasets/banana.jpg"
download(url, './banana.jpg', replace=True)

vision

此示例将使用mindspore.dataset.vision模块中的Transform,对给定图像进行变换。

您仅需要关注使用何种数据变换,而不需要关注数据管道的任何代码。

Vision Transform的Eager模式支持numpy.array或PIL.Image类型的数据作为入参。

import numpy as np
from PIL import Image
import matplotlib.pyplot as plt
import mindspore.dataset.vision as vision

img_ori = Image.open("banana.jpg").convert("RGB")
print("Image.type: {}, Image.shape: {}".format(type(img_ori), img_ori.size))

# Apply Resize to input immediately
op1 = vision.Resize(size=(320))
img = op1(img_ori)
print("Image.type: {}, Image.shape: {}".format(type(img), img.size))

# Apply CenterCrop to input immediately
op2 = vision.CenterCrop((280, 280))
img = op2(img)
print("Image.type: {}, Image.shape: {}".format(type(img), img.size))

# Apply Pad to input immediately
op3 = vision.Pad(40)
img = op3(img)
print("Image.type: {}, Image.shape: {}".format(type(img), img.size))

# Show the result
plt.subplot(1, 2, 1)
plt.imshow(img_ori)
plt.title("original image")
plt.subplot(1, 2, 2)
plt.imshow(img)
plt.title("transformed image")
plt.show()

在这里插入图片描述

text

此示例将使用text模块中Transforms,对给定文本进行变换。

Text Transforms的Eager模式支持numpy.array类型数据的作为入参。

import mindspore.dataset.text.transforms as text
import mindspore as ms

# Apply UnicodeCharTokenizer to input immediately
txt = "Welcome to Beijing !"
txt = text.UnicodeCharTokenizer()(txt)
print("Tokenize result: {}".format(txt))

# Apply ToNumber to input immediately
txt = ["123456"]
to_number = text.ToNumber(ms.int32)
txt = to_number(txt)
print("ToNumber result: {}, type: {}".format(txt, txt[0].dtype))

transforms

此示例将使用transforms模块中通用Transform,对给定数据进行变换。

通用Transform的Eager模式支持numpy.array类型的数据作为入参。

import numpy as np
import mindspore.dataset.transforms as trans

# Apply Fill to input immediately
data = np.array([1, 2, 3, 4, 5])
fill = trans.Fill(0)
data = fill(data)
print("Fill result: ", data)

# Apply OneHot to input immediately
label = np.array(2)
onehot = trans.OneHot(num_classes=5)
label = onehot(label)
print("OneHot result: ", label)

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

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

相关文章

【趣学Python算法100例】数制转换

问题描述 给定一个M进制的数x,实现对x向任意一个非M进制的数的转换。 问题分析 要搞定这道题,关键在于学会不同数制之间的转换,主要是二进制、八进制、十六进制和十进制这几种。理解下面这几个概念非常重要: 基数:…

Go基础学习06-Golang标准库container/list(双向链表)深入讲解;延迟初始化技术;Element;List;Ring

基础介绍 单向链表中的每个节点包含数据和指向下一个节点的指针。其特点是每个节点只知道下一个节点的位置,使得数据只能单向遍历。 示意图如下: 双向链表中的每个节点都包含指向前一个节点和后一个节点的指针。这使得在双向链表中可以从前向后或从后…

Docker仓库搭建

目录 一、Docker Hub 二、私有Registry仓库搭建 1、下载并开启仓库镜像registry 2、Registry加密传输 3、建立一个registry仓库 4、为客户端建立证书 5、测试 6、为仓库建立登录认证 三、Harbor仓库搭建 Docker 仓库(Docker Registry) 是用于存…

8种数值变量的特征工程技术:利用Sklearn、Numpy和Python将数值转化为预测模型的有效特征

特征工程是机器学习流程中的关键步骤,在此过程中,原始数据被转换为更具意义的特征,以增强模型对数据关系的理解能力。 特征工程通常涉及对现有数据应用转换,以生成或修改数据,这些转换后的数据在机器学习和数据科学的…

书生大模型实战营学习[9] OpenCompass 评测 InternLM-1.8B 实践

准备工作 打开开发机,选择cuda11.7环境,A100选择10%,点击创建,然后进入开发机即可,和之前的操作一样。接下来创建环境,下载必要的依赖包 conda create -n opencompass python3.10 conda install pytorch2…

什么是网络安全自动化以及优势与挑战

目录 网络安全自动化的工作原理 网络安全自动化的好处 增强的安全功能 改善表现和姿势 降低安全成本 简化的安全合规性和审计 更好的端点管理 网络安全自动化的挑战 耗时且容易出错的安全流程 可见性降低,风险和成本增加 合规管理 有用的网络安全自动化…

2024年合肥市职业院校技能大赛(中职组)赛 网络安全 竞赛样题

2024年合肥市职业院校技能大赛(中职组)赛 网络安全 竞赛样题 (总分100分) 培训、环境、资料、考证 公众号:Geek极安云科 网络安全群:624032112 网络系统管理群:223627079 网络建设与运维群:870959784 极安云科专注于技能提升&am…

基于nodejs+vue的旅游管理系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码 精品专栏:Java精选实战项目…

Docker启动失败,Failed to start docker,只需三个步骤,看我怎么搞定它!

在项目部署上线的时候 1打开hyper-v虚拟机 怎么打开呢? 命令提示符输入control,点击回车,打开控制面板,打开“程序和功能”,“启用和关闭windows功能”,选择Hyper-v,勾选下面的每一项内容。完成之后又点…

机器学习-模型集成

文章目录 模型集成为什么要集成?模型集成要解决的问题主要的集成思想 Committees多个模型的结果进行融合。BaggingBagging 特点 BoostingAdaBoost算法过程 GBDT负梯度拟合 XGBoostXGBoost 参数通用参数booster 参数学习目标参数 模型保存 模型集成 三个臭皮匠顶一个…

结构连接能否成为精神病早期的功能预后标志?

TLDR: 该研究发现精神病首次发作的患者(未经药物治疗)脑部存在广泛的结构连接减少,尤其是前额叶-纹状体-丘脑系统的连接异常。基线时的脑部结构连接可以有效预测患者12个月后的功能恢复情况。研究表明,脑部结构连接的减少可能与精…

【游戏策划 还能这么玩】

长期陷入低迷的桌游圈最近重新焕发出希望的光芒。由腾讯和网易离职的策划及美术团队开发的桌游《王冠继承者之战》在一小时内众筹金额突破20万。 对于游戏策划者来说,不妨拓展思路,将目光转向尚未充分挖掘的桌游市场,那里可能蕴藏着让人意想…

C++ 标准模板库(STL)之集合(set)

啊,哈喽,小伙伴们大家好。我是#张亿,今天呐,学的是集合(set) C 标准模板库(STL)之集合(set) (下面代码中的std::要去掉) 在C标准模板库(STL&am…

HCIP——HCIA回顾

第一章.HCIA复习 引入场景 其实IA我们主要学习的无非就是数据包在网络中传递的基本过程,我们设计一个场景,通过回顾web页面的请求过程,将IA学过的基本网络工作原理来串一遍。 (在本例中,ISP网络为学校提供了DNS服务,…

数据恢复新宠!2024年Top3宝藏工具

在这个离不开电脑和手机的时代,U盘是我们存储照片、文档、视频的得力助手。万一U盘格式化了,别担心,数据很可能能恢复。2024年流行的三种恢复方法,都能帮你找回丢失的数据。记住,格式化后数据并非真正消失,…

【SpringBoot详细教程】-05-整合Druid操作数据库【持续更新】

文末看往期系列教程:给个关注可好? 🌲 SpringData简介 对于数据访问层,无论是 SQL (关系型数据库) 还是 NoSql (非关系型数据库),Spring Boot 底层都是采用 Spring Data 的方式进行统一处理。 Spring Boot 底层都是采…

Python实现:时间序列趋势外推法应用-龚珀兹曲线拟合

龚珀兹曲线 下表数据为某跨国公司1989-2021年的年销售量数据,使用适合的模型预测该公司2022年的销售额,并得出理由。 部分数据如下表(具体数据从主页资源下载): 年份时序(t)总额(y…

Spring JDBC及声明式事务

目录 Spring JDBC基础概念 Spring声明式事务 事务传播方式 Spring JDBC基础概念 Spring JDBC 封装了原生的JDBC API,使得处理关系型数据库更加简单。Spring JDBC的核心是JdbcTemplate,里面封装了大量数据库CRUD的操作。使用Spring JDBC…

八大核心能力铸就销售精英:解锁成功销售的密钥

成功销售,既是精妙绝伦的艺术展现,也是融汇多元技能的卓越实践。无论企业处于初创的萌芽阶段,还是屹立行业的巅峰之列,跨越销售高峰的征途上,销售人员所掌握的八大核心能力,如同星辰指引,不可或…

高性能、高可靠,MK SD卡让数据存储无忧!

文章目录 SD卡(Secure Digital Memory Card),作为当代数字生活中不可或缺的存储媒介,凭借其卓越的数据传输效率、灵活的热插拔功能以及惊人的存储容量,在多个领域大放异彩。从日常使用的智能手机、平板电脑到追求极致体…