mindspore.dataset.transforms
通用
此模块用于通用数据增强,其中一部分增强操作是用C++实现的,具有较好的高性能,另一部分是基于Python实现,使用了NumPy模块作为支持。
在API示例中,常用的模块导入方法如下:
import mindspore.dataset as ds
import mindspore.dataset.transforms as transforms
注意:旧的API导入方式已经过时且会逐步废弃,因此推荐使用上面的方式,但目前仍可按以下方式导入:
from mindspore.dataset.transforms import c_transforms
from mindspore.dataset.transforms import py_transforms
常用数据处理术语说明如下:
TensorOperation,所有C++实现的数据处理操作的基类。
PyTensorOperation,所有Python实现的数据处理操作的基类。
变换
将多个数据增强操作组合使用。 |
|
在输入数据的某一个轴上进行数组拼接,目前仅支持拼接形状为1D的数组。 |
|
将输入的数据列复制得到新的数据列,每次仅可以输入1个数据列进行复制。 |
|
将Tensor的所有元素都赋值为指定的值。 |
|
用给条件判断输入Tensor的内容,并返回一个掩码Tensor。 |
|
对输入标签进行OneHot编码。 |
|
对输入Tensor进行填充,要求 pad_shape 与输入Tensor的维度保持一致。 |
|
指定一组数据增强处理及其被应用的概率,在运算时按概率随机应用其中的增强处理。 |
|
从一组数据增强变换中随机选择一个进行应用。 |
|
给一个数据增强的列表,随机打乱数据增强处理的顺序。 |
|
对输入进行切片。 |
|
将输入的Tensor转换为指定的数据类型。 |
|
对输入张量进行唯一运算,每次只支持对一个数据列进行变换。 |
工具
关系运算符。 |
视觉
此模块用于图像数据增强,其中有一部分增强是基于C++ OpenCV实现的,具有较好的性能,而另一部分是基于Python Pillow实现的。
API样例中常用的导入模块如下:
import mindspore.dataset as ds
import mindspore.dataset.vision as vision
import mindspore.dataset.vision.utils as utils
注意:旧的API导入方式已经过时且会逐步废弃,因此推荐使用上面的方式,但目前仍可按以下方式导入:
import mindspore.dataset.vision.c_transforms as c_vision
import mindspore.dataset.vision.py_transforms as py_vision
from mindspore.dataset.transforms import c_transforms
常用数据处理术语说明如下:
TensorOperation,所有C++实现的数据处理操作的基类。
PyTensorOperation,所有Python实现的数据处理操作的基类。
数据增强操作可以放入数据处理Pipeline中执行,也可以Eager模式执行:
Pipeline模式用于流式处理大型数据集,示例可参考 数据处理Pipeline介绍 。
Eager模式用于函数调用方式处理样本,示例可参考 轻量化数据处理 。
样例库
快速上手使用视觉类变换的API,跳转参考 视觉变换样例库 。 此指南中展示了多个变换API的用法,以及输入输出结果。
变换
调整输入图像的亮度。 |
|
调整输入图像的对比度。 |
|
对输入图像应用伽马校正。 |
|
调整输入图像的色调。 |
|
调整输入图像的饱和度。 |
|
调整输入图像的锐度。 |
|
对输入图像进行仿射变换,保持图像中心不动。 |
|
应用AutoAugment数据增强方法,基于论文 AutoAugment: Learning Augmentation Strategies from Data 。 |
|
在输入图像上应用自动对比度。 |
|
对图像的随机标注边界框区域,应用给定的图像变换处理。 |
|
对输入图像应用中心区域裁剪。 |
|
更改图像的色彩空间。 |
|
在输入图像上裁剪出指定区域。 |
|
对输入批次的图像和标注应用剪切混合转换。 |
|
从输入图像数组中随机裁剪出给定数量的正方形区域。 |
|
将输入的压缩图像解码为RGB格式。 |
|
将输入的视频原始字节解码为视频、音频。 |
|
对输入图像进行直方图均衡化。 |
|
使用指定的值擦除输入图像。 |
|
在输入PIL图像的中心与四个角处分别裁剪指定尺寸大小的子图。 |
|
使用指定的高斯核对输入图像进行模糊处理。 |
|
将输入PIL图像转换为灰度图。 |
|
水平翻转输入图像。 |
|
将输入的HSV格式numpy.ndarray图像转换为RGB格式。 |
|
将输入图像的shape从 <H, W, C> 转换为 <C, H, W>。 |
|
对输入的RGB图像进行色彩反转。 |
|
使用指定的变换方阵和均值向量对输入numpy.ndarray图像进行线性变换。 |
|
随机混合一批输入的numpy.ndarray图像及其标签。 |
|
对输入批次的图像和标注应用混合转换。 |
|
根据均值和标准差对输入图像进行归一化。 |
|
根据均值和标准差对输入图像进行归一化,然后填充一个全零的额外通道。 |
|
填充图像。 |
|
将图像填充到固定大小。 |
|
对输入图像进行透视变换。 |
|
减少图像的颜色通道的比特位数,使图像变得高对比度和颜色鲜艳,类似于海报或印刷品的效果。 |
|
对输入图像应用RandAugment数据增强方法。 |
|
以给定的概率随机调整输入图像的锐度。 |
|
对输入图像应用随机仿射变换。 |
|
以给定的概率自动调整图像的对比度。 |
|
随机调整输入图像的颜色。 |
|
随机调整输入图像的亮度、对比度、饱和度和色调。 |
|
对输入图像进行随机区域的裁剪。 |
|
"裁剪"、"解码"和"调整尺寸大小"的组合处理。 |
|
在输入图像的随机位置进行裁剪并相应地调整边界框。 |
|
以给定的概率随机对输入图像进行直方图均衡化。 |
|
按照指定的概率擦除输入numpy.ndarray图像上随机矩形区域内的像素。 |
|
按照指定的概率将输入PIL图像转换为灰度图。 |
|
对输入图像按给定的概率进行水平随机翻转。 |
|
按给定的概率,对输入图像及其边界框进行随机水平翻转。 |
|
以给定的概率随机反转图像的颜色。 |
|
将AlexNet PCA的噪声添加到图像中。 |
|
按照指定的概率对输入PIL图像进行透视变换。 |
|
随机减少图像的颜色通道的比特位数,使图像变得高对比度和颜色鲜艳。 |
|
对输入图像进行随机裁剪,并使用指定的 |
|
对输入图像进行随机裁剪且随机调整纵横比,并将处理后的图像调整为指定的尺寸大小,并相应地调整边界框。 |
|
对输入图像使用随机选择的 |
|
对输入图像使用随机选择的 |
|
在指定的角度范围内,随机旋转输入图像。 |
|
从策略列表中随机选择一个子策略以应用于输入图像。 |
|
在固定或随机的范围调整输入图像的锐度。 |
|
从给定阈值范围内随机选择一个子范围,对位于给定子范围内的像素,将其像素值设置为(255 - 原本像素值)。 |
|
以给定的概率对输入图像在垂直方向进行随机翻转。 |
|
以给定的概率对输入图像和边界框在垂直方向进行随机翻转。 |
|
基于给定的缩放和平移因子调整图像的像素大小。 |
|
对输入图像使用给定的 |
|
裁切输入图像的指定区域并放缩到指定尺寸大小。 |
|
将输入图像调整为给定的尺寸大小并相应地调整边界框的大小。 |
|
将输入的RGB格式numpy.ndarray图像转换为HSV格式。 |
|
将输入图像旋转指定的度数。 |
|
在水平和垂直方向上将Tensor切片为多个块。 |
|
通过反转阈值内的所有像素值,对输入图像进行曝光。 |
|
在输入PIL图像的中心与四个角处分别裁剪指定尺寸大小的子图,并将其翻转图一并返回。 |
|
将输入PIL图像转换为numpy.ndarray图像。 |
|
将 numpy.ndarray 格式的解码图像转换为 PIL.Image.Image 格式的图像。 |
|
将输入PIL图像或numpy.ndarray图像转换为指定类型的numpy.ndarray图像,图像的像素值范围将从[0, 255]放缩为[0.0, 1.0],shape将从<H, W, C>调整为<C, H, W>。 |
|
将输入转换为指定的MindSpore数据类型或NumPy数据类型。 |
|
对输入图像应用TrivialAugmentWide数据增强方法。 |
|
从指定序列中均匀采样一批数据处理操作,并按顺序随机执行,即采样出的操作也可能不被执行。 |
|
对输入图像进行垂直翻转。 |
工具
不同数据集的自动增强策略。 |
|
边界填充方式枚举类。 |
|
图像色彩空间转换模式枚举类。 |
|
图像批处理输出格式枚举类。 |
|
图像文件读取方式枚举类。 |
|
图像插值方法枚举类。 |
|
Tensor切片方式枚举类。 |
|
将输入的图像编码为JPEG数据。 |
|
将输入的图像编码为PNG数据。 |
|
获取输入图像通道数。 |
|
获取输入图像的大小为[高度, 宽度]。 |
|
以二进制模式读取文件。 |
|
读取图像文件并解码为3通道RGB彩色数据或灰度数据。 |
|
从视频文件中读取视频、音频、元数据。 |
|
读取视频文件的时间戳和帧率。 |
|
使用二进制模式将一维uint8类型数据数组写到文件。 |
|
将图像数据保存为JPEG文件。 |
|
将图像数据保存为PNG文件。 |
文本
此模块用于文本数据增强,包括 transforms 和 utils 两个子模块。
transforms 是一个高性能文本数据增强模块,支持常见的文本数据增强处理。
utils 提供了一些文本处理的工具方法。
在API示例中,常用的模块导入方法如下:
import mindspore.dataset as ds
from mindspore.dataset import text
常用数据处理术语说明如下:
TensorOperation,所有C++实现的数据处理操作的基类。
TextTensorOperation,所有文本数据处理操作的基类,派生自TensorOperation。
数据增强操作可以放入数据处理Pipeline中执行,也可以Eager模式执行:
Pipeline模式用于流式处理大型数据集,示例可参考 数据处理Pipeline介绍 。
Eager模式用于函数调用方式处理样本,示例可参考 轻量化数据处理 。
样例库
快速上手使用文本变换的API,跳转参考 文本变换样例库 。 此指南中展示了多个变换API的用法,以及输入输出结果。
变换
接口名 |
概述 |
说明 |
将分词(token)添加到序列的开头或结尾处。 |
||
按照指定规则对输入的UTF-8编码字符串进行分词。 |
Windows平台尚不支持 BasicTokenizer |
|
使用Bert分词器对字符串进行分词。 |
Windows平台尚不支持 BertTokenizer |
|
将UTF-8编码字符串中的字符规范化为小写,相比 |
Windows平台尚不支持 CaseFold |
|
将Wikipedia XML格式转储过滤为仅由小写字母(a-z,从A-Z转换而来)和空格(从不连续)组成的“干净”文本。 |
Windows平台尚不支持 FilterWikipediaXML |
|
使用Jieba分词器对中文字符串进行分词。 |
隐式马尔可夫模型(Hidden Markov Model)分词和最大概率法(Max Probability)分词所使用的词典文件可通过 |
|
根据词表,将分词标记(token)映射到其索引值(id)。 |
||
从1-D的字符串生成N-gram。 |
||
对UTF-8编码的字符串进行规范化处理。 |
Windows平台尚不支持 NormalizeUTF8 |
|
使用用户自定义的分词器对输入字符串进行分词。 |
||
使用正则表达式将输入 UTF-8 字符串的部分字符串替换为指定文本。 |
Windows平台尚不支持 RegexReplace |
|
根据正则表达式对字符串进行分词。 |
Windows平台尚不支持 RegexTokenizer |
|
使用SentencePiece分词器对字符串进行分词。 |
||
在输入数据的某个维度上进行滑窗切分处理,当前仅支持处理1-D的Tensor。 |
||
将字符串的每个元素转换为数字。 |
||
根据输入向量表查找向量中的tokens。 |
||
截断输入序列,使其不超过最大长度。 |
||
对两列 1-D 字符串输入进行截断,使其总长度小于指定长度。 |
||
对输入字符串中的Unicode字符进行分词。 |
||
使用UnicodeScript分词器对UTF-8编码的字符串进行分词。 |
Windows平台尚不支持 UnicodeScriptTokenizer |
|
基于ICU4C定义的空白字符(' ', '\\t', '\\r', '\\n')对输入的UTF-8字符串进行分词。 |
Windows平台尚不支持 WhitespaceTokenizer |
|
将输入的字符串切分为子词。 |
工具
接口名 |
概述 |
说明 |
CharNGram 预训练词向量。 |
||
FastText 预训练词向量。 |
||
Global Vectors(GloVe)预训练词向量。 |
||
Jieba分词器可使用的分词算法。 |
||
SentencePiece的子词算法。 |
||
用于执行分词的SentencePiece对象。 |
||
SentencePiece分词器的模型输入类型。 |
||
预训练词向量。 |
||
创建用于训练NLP模型的Vocab。 |
||
基于 encoding 字符集对每个元素进行编码,将 string 的NumPy数组转换为 bytes 的数组。 |
||
基于 encoding 字符集对每个元素进行解码,借此将 bytes 的NumPy数组转换为 string 的数组。 |
音频
此模块用于音频数据增强,包括 transforms 和 utils 两个子模块。 transforms 是一个高性能音频数据增强模块,支持常见的音频数据增强操作。 utils 提供了一些音频处理的工具方法。
API样例中常用的导入模块如下:
import mindspore.dataset as ds
import mindspore.dataset.audio as audio
常用数据处理术语说明如下:
TensorOperation,所有C++实现的数据处理操作的基类。
AudioTensorOperation,所有音频数据处理操作的基类,派生自TensorOperation。
数据增强操作可以放入数据处理Pipeline中执行,也可以Eager模式执行:
Pipeline模式用于流式处理大型数据集,示例可参考 数据处理Pipeline介绍 。
Eager模式用于函数调用方式处理样本,示例可参考 轻量化数据处理 。
样例库
快速上手使用音频变换的API,跳转参考 音频变换样例库 。 此指南中展示了多个变换API的用法,以及输入输出结果。
变换
给音频波形施加双极点全通滤波器,其中心频率和带宽由入参指定。 |
|
将输入音频从振幅/功率标度转换为分贝标度。 |
|
计算复数序列的角度。 |
|
给音频波形施加双极点带通滤波器。 |
|
给音频波形施加双极点巴特沃斯(Butterworth)带通滤波器。 |
|
给音频波形施加双极点巴特沃斯(Butterworth)带阻滤波器。 |
|
给音频波形施加低音控制效果,即双极点低频搁架滤波器。 |
|
给音频波形施加双二阶滤波器。 |
|
计算复数序列的范数。 |
|
计算频谱的delta系数,也叫差分系数。 |
|
给音频波形施加对比度增强效果。 |
|
将音频波形从分贝转换为功率或振幅。 |
|
对输入音频波形施加直流移位。 |
|
给音频波形施加CD(IEC 60908)去重音(一种高音衰减搁置滤波器)效果。 |
|
检测音调频率。 |
|
通过消除非线性截断失真,来抖动增加存储在特定位深的音频的动态感知范围。 |
|
给音频波形施加双二次均衡器滤波器。 |
|
向波形添加淡入和/或淡出。 |
|
对音频波形施加正反向IIR滤波。 |
|
给音频施加镶边效果。 |
|
给音频波形施加频域掩码。 |
|
放大或衰减整个音频波形。 |
|
使用Griffin-Lim算法从线性幅度频谱图中计算信号波形。 |
|
给音频波形上施加双二阶高通滤波器。 |
|
使用转换矩阵从梅尔频率STFT求解普通频率的STFT。 |
|
计算输入频谱的反向频谱,以恢复原始音频信号。 |
|
计算音频信号的线性频率倒谱系数。 |
|
根据指定的差分方程施加IIR滤波器。 |
|
给音频波形施加双极点低通滤波器。 |
|
将shape为 \((..., 2)\) 的复值光谱图分离,输出幅度和相位。 |
|
对音频波形应用掩码。 |
|
对音频波形沿 axis 轴应用掩码。 |
|
将普通STFT转换为梅尔尺度的STFT。 |
|
计算原始音频信号的梅尔频谱。 |
|
计算音频信号的梅尔频率倒谱系数。 |
|
解码mu-law编码的信号,参考 mu-law算法 。 |
|
基于mu-law压缩的信号编码。 |
|
给音频波形施加过载效果。 |
|
给音频波形施加相位效果。 |
|
对给定的STFT频谱,在不改变音高的情况下以一定比率进行加速。 |
|
将信号从一个频率重采样至另一个频率。 |
|
将波形的音调移动 n_steps 步长。 |
|
对输入音频波形施加RIAA均衡。 |
|
对每个话语应用滑动窗口倒谱均值(和可选方差)归一化。 |
|
计算每个通道沿时间轴的频谱中心。 |
|
从音频信号创建其频谱。 |
|
给音频波形施加时域掩码。 |
|
以给定的比例拉伸音频短时傅里叶(Short Time Fourier Transform, STFT)频谱的时域,但不改变音频的音高。 |
|
给音频波形施加高音音调控制效果。 |
|
语音活动检测器。 |
|
调整波形的音量。 |
工具
填充模式。 |
|
密度函数类型。 |
|
淡入淡出形状。 |
|
增益类型。 |
|
音频波形的插值模式。 |
|
梅尔标度实现类型。 |
|
调制类型。 |
|
标准化模式。 |
|
标准化类型。 |
|
重采样方法。 |
|
音频标度枚举类。 |
|
窗函数类型。 |
|
创建一个shape为( n_mels , n_mfcc )的DCT变换矩阵,并根据范数进行标准化。 |
|
创建一个线性三角滤波器组。 |
|
创建频率变换矩阵。 |