变则通--通则达--MindSpore社区活动-深度学习模型之数据变换-Transforms学习与体验记录
以上就是本篇根据昇思平台数据变换 Transforms教程文章所有内容。
文章目录
已加入 昇思MindSpore社区 证明截图
安装 MindSpore 2.0 alpha 步骤
本文使用 Windows 平台,以下为的安装配置
- 注意:硬件平台选择 CPU 之后 windows_x64 的选项才会出现
- 根据自机环境安装的python 版本 3.8
- 其他选项默认
安装 python 的教程可看 python最详细的安装与完全卸载
打开powershell 或 cmd
- 依次输入
set MS_VERSION=2.0.0a0
遇到一个问题 pip版本不支持
升级即可,输入指令pip install --upgrade pip
若该命令依旧报错,使用下面的语句(即使用管理员权限,换镜像)参考文章https://blog.csdn.net/qq_37758925/article/details/108607592
python -m pip install --upgrade pip -i https://pypi.douban.com/simple
安装成功的截图
实现 数据变换Transforms 任务
因为本人的电脑配置实在带不动,特别卡----故采取使用华为云的Modelarts 云环境平台来实现 该任务
- 进入后 ModelArts平台 即可使用(登陆后就免费提供了服务器资源)—感谢华为!🤭
根据教程可知 MindSpore提供不同种类的数据变换(Transforms),配合数据处理Pipeline来实现数据预处理。所有的Transforms均可通过map方法传入,实现对指定数据列的处理。
以下按照教程中的依次实现
Common Transforms 通用数据变换
此模块用于通用数据增强,其中一部分增强操作是用C++实现的,具有较好的高性能,另一部分是基于Python实现,使用了NumPy模块作为支持。
- 教程 以Compose为例,介绍其使用方式
Compose
Compose接收一个数据增强操作序列,然后将其组合成单个数据增强操作。我们仍基于Mnist数据集呈现Transforms的应用效果。
除了Compose,通用转换还提供了其他类型的 如图
其他类型API详情可看:mindspore.dataset.transforms
- 执行结果的截图
Vision Transforms 针对图像数据的变换
此模块用于图像数据增强,其中有一部分增强是基于C++ OpenCV实现的,具有较好的性能,而另一部分是基于Python Pillow实现的。
mindspore.dataset.vision模块提供一系列针对图像数据的Transforms。在Mnist数据处理过程中,使用了Rescale、Normalize和HWC2CHW变换。
- Rescale
Rescale变换用于调整图像像素值的大小,包括两个参数:
rescale:缩放因子。
shift:平移因子。
-
执行结果的截图
-
Normalize
Normalize变换用于对输入图像的归一化,包括三个参数:
mean:图像每个通道的均值。
std:图像每个通道的标准差。
is_hwc:输入图像格式为(height, width, channel)还是(channel, height, width)。
- HWC2CWH
HWC2CWH变换用于转换图像格式。在不同的硬件设备中可能会对(height, width, channel)或(channel, height, width)两种不同格式有针对性优化。MindSpore设置HWC为默认图像格式,在有CWH格式需求时,可使用该变换进行处理。
- Normalize和HWC2CWH执行结果的截图
Text Transforms 文本数据的变换
此模块用于文本数据增强,包括 transforms 和 utils 两个子模块。
transforms 是一个高性能文本数据增强模块,支持常见的文本数据增强处理。
utils 提供了一些文本处理的工具方法。
- BasicTokenizer
分词(Tokenize)操作是文本数据的基础处理方法,MindSpore提供多种不同的Tokenizer。这里我们选择基础的BasicTokenizer举例。配合map,将三段文本进行分词,可以看到处理后的数据成功分词。
- Lookup
Lookup为词表映射变换,用来将Token转换为Index。在使用Lookup前,需要构造词表,一般可以加载已有的词表,或使用Vocab生成词表。这里我们选择使用Vocab.from_dataset方法从数据集中生成词表。
- 执行结果的截图
Lambda Transforms
关于 Lambda 变换 实在理解不了,教程给出了解释如下
Lambda函数是一种不需要名字、由一个单独表达式组成的匿名函数,表达式会在调用时被求值。 Lambda Transforms可以加载任意定义的Lambda函数,提供足够的灵活度。
- 执行结果的截图
结语
以上就是本篇根据昇思平台数据变换 Transforms教程文章所有内容
- 最后感谢华为云 的 ModelArts 平台提供免费的学习环境和服务器资源
更多推荐
所有评论(0)