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

数据变换Transforms

  • 介绍
  • Transforms分类
    • Common Transforms
    • Vision Transforms
    • Text Transforms
      • PythonTokenizer
    • Lookup
    • Lambda Transforms
  • 参考

介绍

MindSpore提供不同种类的数据变换(Transforms),配合数据处理Pipeline来实现数据预处理。
所有的Transforms均可通过map方法传入,实现对指定数据列的处理。
mindspore.dataset提供了面向图像、文本、音频等不同数据类型的Transforms,同时也支持使用Lambda函数。

Transforms分类

Common Transforms

mindspore.dataset.transforms模块支持一系列通用Transforms。
transforms通用api

Vision Transforms

mindspore.dataset.vision模块提供一系列针对图像数据的Transforms。
此模块用于图像数据增强,其中有一部分增强是基于C++ OpenCV实现的,具有较好的性能,而另一部分是基于Python Pillow实现的。

Text Transforms

mindspore.dataset.text模块提供一系列针对文本数据的Transforms。与图像数据不同,文本数据需要有分词(Tokenize)、构建词表、Token转Index等操作。

PythonTokenizer

分词(Tokenize)操作是文本数据的基础处理方法。以PythonTokenizer举例实现自定义分词策略。
代码示例:

# 自定义分词函数
def my_tokenizer(content):return content.split()test_dataset = test_dataset.map(text.PythonTokenizer(my_tokenizer))
print(next(test_dataset.create_tuple_iterator()))# 运行结果:
# [Tensor(shape=[3], dtype=String, value= ['Welcome', 'to', 'Beijing'])]

Lookup

Lookup为词表映射变换,用来将Token转换为Index。在使用Lookup前,需要构造词表,一般可以加载已有的词表,或使用Vocab生成词表。
代码示例:

# 使用Vocab.from_dataset方法从数据集中生成词表
vocab = text.Vocab.from_dataset(test_dataset)
print(vocab.vocab())
# 输出
# {'to': 2, 'Beijing': 0, 'Welcome': 1}# 配合map方法进行词表映射变换,将Token转为Index
test_dataset = test_dataset.map(text.Lookup(vocab))
print(next(test_dataset.create_tuple_iterator()))
# 输出
# [Tensor(shape=[3], dtype=Int32, value= [1, 2, 0])]

Lambda Transforms

Lambda函数是一种不需要名字、由一个单独表达式组成的匿名函数,表达式会在调用时被求值。
Lambda Transforms可以加载任意定义的Lambda函数,提供足够的灵活度。
代码示例:

# 使用GeneratorDataset接口自定义数据集
test_dataset = GeneratorDataset([1, 2, 3], 'data', shuffle=False)# 方式一:使用一个简单的Lambda函数,对输入数据乘2
test_dataset = test_dataset.map(lambda x: x * 2)
print(list(test_dataset.create_tuple_iterator()))
# 运行结果:
# [[Tensor(shape=[], dtype=Int64, value= 2)], [Tensor(shape=[], dtype=Int64, value= 4)], [Tensor(shape=[], dtype=Int64, value= 6)]]# 方式二:定义较复杂的函数,配合Lambda函数实现复杂数据处理
def func(x):return x * x + 2test_dataset = test_dataset.map(lambda x: func(x))
print(list(test_dataset.create_tuple_iterator()))
# 运行结果:
# [[Tensor(shape=[], dtype=Int64, value= 6)], [Tensor(shape=[], dtype=Int64, value= 18)], [Tensor(shape=[], dtype=Int64, value= 38)]]

参考

  • MindSpore的api文档

截图时间
在这里插入图片描述

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

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

相关文章

连接Sql Server时报错:无法通过使用安全套接字层加密与 SQL Server 建立安全连接

JDBC连接Sql Server时报错:无法通过使用安全套接字层加密与 SQL Server 建立安全连接 前言解决办法一解决办法二总结 前言 今天使用jdbc连接sql server突然报错为:SQLServerException: “Encrypt”属性设置为“true”且 “trustServerCertificate”属性设置为“fals…

文件夹内-资源名称前加序号排列

问题:在文件夹下的资源可以按时间排序,导入unity后资源顺序会乱掉,不方便按顺序赋值,为了方便,通过下面方法在文件夹下统一在资源名称前按顺序加上序号 win11在文件夹内右键,选择——在终端中打开 输入&a…

制造企业用AI可以做什么?

ChatGPT横空出世,有关AI的浪潮席卷全球,比起人工智能如何改变世界,可能你更感兴趣我能用AI可以做的事情是什么? 制造企业用AI可以做的事情是什么?人工智能在制造企业中可以做很多事情,以下是一些主要的应用&#xff1…

企业源代码加密软件丨透明加密技术是什么

在一个繁忙的软件开发公司中,两位员工小李和小张正在讨论源代码安全的问题。 “小张,你有没有想过我们的源代码如果被泄露了怎么办?”小李担忧地问。 “是啊,这是个大问题。源代码是我们的核心竞争力,一旦泄露&#…

LUA 语言中subtree 的使用教程

在线编辑器: https://www.runoob.com/try/runcode.php?filenameHelloWorld&typelua 在Lua语言中,"subtree"通常指的是一个子表或者子树,它指的是一个Lua表(table)中的一个部分,可以是一个单…

<电力行业> - 《第8课:输电(一)》

1 输电环节的意义 电能的传输,是电力系统整体功能的重要组成环节。发电厂与电力负荷中心通常都位于不同地区。在水力、煤炭等一次能源资源条件适宜的地点建立发电厂,通过输电可以将电能输送到远离发电厂的负荷中心,使电能的开发和利用超越地…

fiddler使用

1、设置抓取HTTPS的请求 先选中浏览器Browser---Chrome 默认是不抓https的数据包的 有时我们抓取的的包是https的,不是http的,就要做一些设置 Tools---Options 勾选Capture HTTPS CONNECTs 勾选Decrypt HTTPS traffic 勾选 Ignore server certificat…

(单机版)神魔大陆|v0.51.0|冰火荣耀

前言 今天给大家带来一款单机游戏的架设:神魔大陆v0.51.0:冰火荣耀。 如今市面上的资源参差不齐,大部分的都不能运行,本人亲自测试,运行视频如下: (单机版)神魔大陆 下面我将详细的教程交给大家,请耐心阅…

[数据集][目标检测]电力场景下电柜箱门把手检测数据集VOC+YOLO格式1167张1类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):1167 标注数量(xml文件个数):1167 标注数量(txt文件个数):1167 标注…

编译工具-Gradle

文章目录 Idea中配置Gradle项目project目录settings.gradlebuild.gradlegradlewgradlew.bat Gradle Build生命周期编写Settings.gradle编写Build.gradleTasksPlugins Idea中配置 配置项:gradle位置 及仓库位置 Gradle项目 Task,settings.gradle,build.…

Web渗透-命令执行漏洞及常见靶场探测实战

一、概述 命令执行(RCE):应用有时需要调用一些执行系统命令的函数,如php中的system,exec,shell exec,passthru,popen,proc popen等,当用户能控制这些函数的参数时,就可以将恶意系统命令拼接到正常命令中&a…

004-GeoGebra基础篇-GeoGebra的点

新手刚开始操作GeoGebra的时候一般都会恨之入骨,因为有些操作不进行学习确实有些难以凭自己发现。 目录 一、点的基本操作1. 通过工具界面添加点2. 关于点的选择(对象选择通用方法)(1)选择工具法(2&#xf…

Java新手启航:Windows下JDK安装,开启编程之旅

你是不是对编程充满好奇,想要迈入Java的世界,却不知道从何开始?别担心,每一个Java大师都是从安装JDK开始的,而今天,我将手把手教你如何轻松完成JDK的安装,让你迈出编程之旅的第一步! 接下来&am…

websocket基础使用学习

websocket基础使用学习 一、websocket是什么?二、使用步骤1.websocket服务的安装与启动安装服务连接与发消息 总结 一、websocket是什么? 以前,很多网站为了实现推送技术,所用的技术都是Ajax 轮询。轮询是在特定的的时间间隔&…

ios18开发者预览,Beta 2升级新增镜像等功能

近日,苹果发布了 iOS 18 开发者预览版 Beta 2 升级,为 iPhone 用户带来了多项新功能。据了解,这些新功能包括 iPhone 镜像和 SharePlay 屏幕共享,以及其他新增功能。 据了解,iPhone镜像可以让Mac用户将iPhone屏幕镜像…

OLMo:真正完全开源的大模型

最近,又有一家机构AI2(Allen Institute for AI)开源了一个LLM:OLMo,它的英文全称就叫Open Language Model。相比之前开源的大模型,OLMo的独特之处是完全开源,除了训练的模型,OLMo还开…

ElementUI的基本搭建

目录 1,首先在控制终端中输入下面代码:npm i element-ui -S 安装element UI 2,构架登录页面,login.vue​编辑 3,在官网获取对应所需的代码直接复制粘贴到对应位置 4,在继续完善,从官网添加…

商业智能(BI)实战项目

商业智能(BI)实战项目 期待您的关注 ☀大数据学习笔记 1.实现的功能 2.数据库操作步骤 创建数据库:create database card;创建表:create table card_apply ( cid bigint primary key auto_increment ,apply_uid bigint ,apply_ent…

商城自动化测试实战 —— 登录+滑块验证

hello大家好,我是你们的小编! 本商城测试项目采取PO模型和数据分离式架构,采用pytestseleniumjenkins结合的方式进行脚本编写与运行,项目架构如下: 1、创建项目名称:code_shopping,创建所需项目…

惠海H6392 2.6v升5V 3.7V升9V 4.2V升12V 升压恒压芯片 小家电IC

惠海H6392升压恒压芯片是一款小家电、移动设备以及其他需要升压恒压电源的电子设备设计的DC-DC转换器。这款芯片以其独特的产品特性和广泛的应用场景,为电子产品设计者提供了高效、稳定的电源解决方案。 产品描述: H6392采用了简单的电流模式升压技术&a…