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变换矩阵,并根据范数进行标准化。 | |
| 创建一个线性三角滤波器组。 | |
| 创建频率变换矩阵。 |