mindspore/docs/api/api_python/mindspore.dataset.transform...

448 lines
16 KiB
ReStructuredText
Raw Normal View History

2022-02-11 17:34:24 +08:00
mindspore.dataset.transforms
============================
2022-11-22 13:52:02 +08:00
通用
-----
此模块用于通用数据增强其中一部分增强操作是用C++实现的具有较好的高性能另一部分是基于Python实现使用了NumPy模块作为支持。
2022-02-22 15:25:59 +08:00
在API示例中常用的模块导入方法如下
2022-02-17 16:26:58 +08:00
.. code-block::
import mindspore.dataset as ds
import mindspore.dataset.transforms as transforms
注意旧的API导入方式已经过时且会逐步废弃因此推荐使用上面的方式但目前仍可按以下方式导入
.. code-block::
2022-02-17 16:26:58 +08:00
from mindspore.dataset.transforms import c_transforms
from mindspore.dataset.transforms import py_transforms
2022-02-11 17:34:24 +08:00
更多详情请参考 `通用数据变换 <https://www.mindspore.cn/tutorials/zh-CN/master/beginner/transforms.html#common-transforms>`_
2022-07-02 16:38:38 +08:00
常用数据处理术语说明如下:
- TensorOperation所有C++实现的数据处理操作的基类。
- PyTensorOperation所有Python实现的数据处理操作的基类。
2022-06-21 11:53:31 +08:00
变换
2022-11-22 13:52:02 +08:00
^^^^^
2022-02-11 17:34:24 +08:00
.. mscnautosummary::
2022-02-11 17:34:24 +08:00
:toctree: dataset_transforms
:nosignatures:
:template: classtemplate.rst
mindspore.dataset.transforms.Compose
mindspore.dataset.transforms.Concatenate
mindspore.dataset.transforms.Duplicate
mindspore.dataset.transforms.Fill
mindspore.dataset.transforms.Mask
mindspore.dataset.transforms.OneHot
mindspore.dataset.transforms.PadEnd
mindspore.dataset.transforms.RandomApply
mindspore.dataset.transforms.RandomChoice
mindspore.dataset.transforms.RandomOrder
mindspore.dataset.transforms.Slice
mindspore.dataset.transforms.TypeCast
mindspore.dataset.transforms.Unique
2022-06-21 11:53:31 +08:00
工具
2022-11-22 13:52:02 +08:00
^^^^^
2022-02-11 17:34:24 +08:00
.. mscnautosummary::
2022-02-11 17:34:24 +08:00
:toctree: dataset_transforms
:nosignatures:
:template: classtemplate.rst
mindspore.dataset.transforms.Relational
2022-11-22 13:52:02 +08:00
视觉
-----
此模块用于图像数据增强其中有一部分增强是基于C++ OpenCV实现的具有较好的性能而另一部分是基于Python Pillow实现的。
API样例中常用的导入模块如下
.. code-block::
import mindspore.dataset as ds
import mindspore.dataset.vision as vision
import mindspore.dataset.vision.utils as utils
注意旧的API导入方式已经过时且会逐步废弃因此推荐使用上面的方式但目前仍可按以下方式导入
.. code-block::
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
更多详情请参考 `视觉数据变换 <https://www.mindspore.cn/tutorials/zh-CN/master/beginner/transforms.html#vision-transforms>`_
常用数据处理术语说明如下:
- TensorOperation所有C++实现的数据处理操作的基类。
- PyTensorOperation所有Python实现的数据处理操作的基类。
数据增强操作可以放入数据处理Pipeline中执行也可以Eager模式执行
- Pipeline模式一般用于处理数据集示例可参考 `数据处理Pipeline介绍 <https://www.mindspore.cn/docs/zh-CN/master/api_python/mindspore.dataset.html#数据处理pipeline介绍>`_
- Eager模式一般用于零散样本图像预处理举例如下
.. code-block::
import numpy as np
import mindspore.dataset.vision as vision
from PIL import Image,ImageFont,ImageDraw
# 画圆形
img = Image.new("RGB", (300, 300), (255, 255, 255))
draw = ImageDraw.Draw(img)
draw.ellipse(((0, 0), (100, 100)), fill=(255, 0, 0), outline=(255, 0, 0), width=5)
img.save("./1.jpg")
with open("./1.jpg", "rb") as f:
data = f.read()
data_decoded = vision.Decode()(data)
data_croped = vision.RandomCrop(size=(250, 250))(data_decoded)
data_resized = vision.Resize(size=(224, 224))(data_croped)
data_normalized = vision.Normalize(mean=[0.485 * 255, 0.456 * 255, 0.406 * 255],
std=[0.229 * 255, 0.224 * 255, 0.225 * 255])(data_resized)
data_hwc2chw = vision.HWC2CHW()(data_normalized)
print("data: {}, shape: {}".format(data_hwc2chw, data_hwc2chw.shape), flush=True)
变换
^^^^^
.. mscnautosummary::
:toctree: dataset_vision
:nosignatures:
:template: classtemplate.rst
2023-03-06 20:18:49 +08:00
mindspore.dataset.vision.AdjustBrightness
mindspore.dataset.vision.AdjustContrast
2022-11-22 13:52:02 +08:00
mindspore.dataset.vision.AdjustGamma
2023-03-06 20:18:49 +08:00
mindspore.dataset.vision.AdjustHue
mindspore.dataset.vision.AdjustSaturation
mindspore.dataset.vision.AdjustSharpness
mindspore.dataset.vision.Affine
2022-11-22 13:52:02 +08:00
mindspore.dataset.vision.AutoAugment
mindspore.dataset.vision.AutoContrast
mindspore.dataset.vision.BoundingBoxAugment
mindspore.dataset.vision.CenterCrop
mindspore.dataset.vision.ConvertColor
mindspore.dataset.vision.Crop
mindspore.dataset.vision.CutMixBatch
mindspore.dataset.vision.CutOut
mindspore.dataset.vision.Decode
mindspore.dataset.vision.Equalize
2023-03-06 20:18:49 +08:00
mindspore.dataset.vision.Erase
2022-11-22 13:52:02 +08:00
mindspore.dataset.vision.FiveCrop
mindspore.dataset.vision.GaussianBlur
mindspore.dataset.vision.Grayscale
mindspore.dataset.vision.HorizontalFlip
mindspore.dataset.vision.HsvToRgb
mindspore.dataset.vision.HWC2CHW
mindspore.dataset.vision.Invert
mindspore.dataset.vision.LinearTransformation
mindspore.dataset.vision.MixUp
mindspore.dataset.vision.MixUpBatch
mindspore.dataset.vision.Normalize
mindspore.dataset.vision.NormalizePad
mindspore.dataset.vision.Pad
mindspore.dataset.vision.PadToSize
2023-03-06 20:18:49 +08:00
mindspore.dataset.vision.Perspective
mindspore.dataset.vision.Posterize
mindspore.dataset.vision.RandAugment
2022-11-22 13:52:02 +08:00
mindspore.dataset.vision.RandomAdjustSharpness
mindspore.dataset.vision.RandomAffine
mindspore.dataset.vision.RandomAutoContrast
mindspore.dataset.vision.RandomColor
mindspore.dataset.vision.RandomColorAdjust
mindspore.dataset.vision.RandomCrop
mindspore.dataset.vision.RandomCropDecodeResize
mindspore.dataset.vision.RandomCropWithBBox
mindspore.dataset.vision.RandomEqualize
mindspore.dataset.vision.RandomErasing
mindspore.dataset.vision.RandomGrayscale
mindspore.dataset.vision.RandomHorizontalFlip
mindspore.dataset.vision.RandomHorizontalFlipWithBBox
mindspore.dataset.vision.RandomInvert
mindspore.dataset.vision.RandomLighting
mindspore.dataset.vision.RandomPerspective
mindspore.dataset.vision.RandomPosterize
mindspore.dataset.vision.RandomResizedCrop
mindspore.dataset.vision.RandomResizedCropWithBBox
mindspore.dataset.vision.RandomResize
mindspore.dataset.vision.RandomResizeWithBBox
mindspore.dataset.vision.RandomRotation
mindspore.dataset.vision.RandomSelectSubpolicy
mindspore.dataset.vision.RandomSharpness
mindspore.dataset.vision.RandomSolarize
mindspore.dataset.vision.RandomVerticalFlip
mindspore.dataset.vision.RandomVerticalFlipWithBBox
mindspore.dataset.vision.Rescale
mindspore.dataset.vision.Resize
2023-03-06 20:18:49 +08:00
mindspore.dataset.vision.ResizedCrop
2022-11-22 13:52:02 +08:00
mindspore.dataset.vision.ResizeWithBBox
mindspore.dataset.vision.RgbToHsv
mindspore.dataset.vision.Rotate
mindspore.dataset.vision.SlicePatches
2023-03-06 20:18:49 +08:00
mindspore.dataset.vision.Solarize
2022-11-22 13:52:02 +08:00
mindspore.dataset.vision.TenCrop
mindspore.dataset.vision.ToNumpy
mindspore.dataset.vision.ToPIL
mindspore.dataset.vision.ToTensor
mindspore.dataset.vision.ToType
2023-03-06 20:18:49 +08:00
mindspore.dataset.vision.TrivialAugmentWide
2022-11-22 13:52:02 +08:00
mindspore.dataset.vision.UniformAugment
mindspore.dataset.vision.VerticalFlip
工具
^^^^^
.. mscnautosummary::
:toctree: dataset_vision
:nosignatures:
:template: classtemplate.rst
mindspore.dataset.vision.AutoAugmentPolicy
mindspore.dataset.vision.Border
mindspore.dataset.vision.ConvertMode
mindspore.dataset.vision.ImageBatchFormat
mindspore.dataset.vision.ImageReadMode
mindspore.dataset.vision.Inter
mindspore.dataset.vision.SliceMode
mindspore.dataset.vision.encode_jpeg
mindspore.dataset.vision.encode_png
mindspore.dataset.vision.get_image_num_channels
mindspore.dataset.vision.get_image_size
mindspore.dataset.vision.read_file
mindspore.dataset.vision.read_image
mindspore.dataset.vision.write_file
mindspore.dataset.vision.write_jpeg
mindspore.dataset.vision.write_png
文本
-----
此模块用于文本数据增强,包括 `transforms``utils` 两个子模块。
`transforms` 是一个高性能文本数据增强模块,支持常见的文本数据增强处理。
`utils` 提供了一些文本处理的工具方法。
在API示例中常用的模块导入方法如下
.. code-block::
import mindspore.dataset as ds
from mindspore.dataset import text
更多详情请参考 `文本数据变换 <https://www.mindspore.cn/tutorials/zh-CN/master/beginner/transforms.html#text-transforms>`_
常用数据处理术语说明如下:
- TensorOperation所有C++实现的数据处理操作的基类。
- TextTensorOperation所有文本数据处理操作的基类派生自TensorOperation。
数据增强操作可以放入数据处理Pipeline中执行也可以Eager模式执行
- Pipeline模式一般用于处理数据集示例可参考 `数据处理Pipeline介绍 <https://www.mindspore.cn/docs/zh-CN/master/api_python/mindspore.dataset.html#数据处理pipeline介绍>`_
- Eager模式一般用于零散样本文本预处理举例如下
.. code-block::
from mindspore.dataset import text
from mindspore.dataset.text import NormalizeForm
# 构造词汇表
vocab_list = {"床": 1, "前": 2, "明": 3, "月": 4, "光": 5, "疑": 6,
"是": 7, "地": 8, "上": 9, "霜": 10, "举": 11, "头": 12,
"望": 13, "低": 14, "思": 15, "故": 16, "乡": 17, "繁": 18,
"體": 19, "字": 20, "嘿": 21, "哈": 22, "大": 23, "笑": 24,
"嘻": 25, "UNK": 26}
vocab = text.Vocab.from_dict(vocab_list)
tokenizer_op = text.BertTokenizer(vocab=vocab, suffix_indicator='##', max_bytes_per_token=100,
unknown_token='[UNK]', lower_case=False, keep_whitespace=False,
normalization_form=NormalizeForm.NONE, preserve_unused_token=True,
with_offsets=False)
# 分词
tokens = tokenizer_op("床前明月光,疑是地上霜,举头望明月,低头思故乡。")
print("token: {}".format(tokens), flush=True)
# 根据单词查找id
ids = vocab.tokens_to_ids(tokens)
print("token to id: {}".format(ids), flush=True)
# 根据id查找单词
tokens_from_ids = vocab.ids_to_tokens([15, 3, 7])
print("token to id: {}".format(tokens_from_ids), flush=True)
变换
^^^^^
.. mscnnoteautosummary::
:toctree: dataset_text
:nosignatures:
:template: classtemplate.rst
mindspore.dataset.text.AddToken
2022-11-22 13:52:02 +08:00
mindspore.dataset.text.BasicTokenizer
mindspore.dataset.text.BertTokenizer
mindspore.dataset.text.CaseFold
mindspore.dataset.text.FilterWikipediaXML
mindspore.dataset.text.JiebaTokenizer
mindspore.dataset.text.Lookup
mindspore.dataset.text.Ngram
mindspore.dataset.text.NormalizeUTF8
mindspore.dataset.text.PythonTokenizer
mindspore.dataset.text.RegexReplace
mindspore.dataset.text.RegexTokenizer
mindspore.dataset.text.SentencePieceTokenizer
mindspore.dataset.text.SlidingWindow
mindspore.dataset.text.ToNumber
mindspore.dataset.text.ToVectors
mindspore.dataset.text.Truncate
2022-11-22 13:52:02 +08:00
mindspore.dataset.text.TruncateSequencePair
mindspore.dataset.text.UnicodeCharTokenizer
mindspore.dataset.text.UnicodeScriptTokenizer
mindspore.dataset.text.WhitespaceTokenizer
mindspore.dataset.text.WordpieceTokenizer
工具
^^^^^
.. mscnnoteautosummary::
:toctree: dataset_text
:nosignatures:
:template: classtemplate.rst
mindspore.dataset.text.CharNGram
mindspore.dataset.text.FastText
mindspore.dataset.text.GloVe
mindspore.dataset.text.JiebaMode
mindspore.dataset.text.NormalizeForm
mindspore.dataset.text.SentencePieceModel
mindspore.dataset.text.SentencePieceVocab
mindspore.dataset.text.SPieceTokenizerLoadType
mindspore.dataset.text.SPieceTokenizerOutType
mindspore.dataset.text.Vectors
mindspore.dataset.text.Vocab
mindspore.dataset.text.to_bytes
mindspore.dataset.text.to_str
音频
-----
.. include:: dataset_audio/mindspore.dataset.audio.rst
数据增强操作可以放入数据处理Pipeline中执行也可以Eager模式执行
- Pipeline模式一般用于处理数据集示例可参考 `数据处理Pipeline介绍 <https://www.mindspore.cn/docs/zh-CN/master/api_python/mindspore.dataset.html#数据处理pipeline介绍>`_
- Eager模式一般用于零散样本音频预处理举例如下
.. code-block::
import numpy as np
import mindspore.dataset.audio as audio
from mindspore.dataset.audio import ResampleMethod
# 音频输入
waveform = np.random.random([1, 30])
# 增强操作
resample_op = audio.Resample(orig_freq=48000, new_freq=16000,
resample_method=ResampleMethod.SINC_INTERPOLATION,
lowpass_filter_width=6, rolloff=0.99, beta=None)
waveform_resampled = resample_op(waveform)
print("waveform reampled: {}".format(waveform_resampled), flush=True)
变换
^^^^^
.. mscnautosummary::
:toctree: dataset_audio
:nosignatures:
:template: classtemplate.rst
mindspore.dataset.audio.AllpassBiquad
mindspore.dataset.audio.AmplitudeToDB
mindspore.dataset.audio.Angle
mindspore.dataset.audio.BandBiquad
mindspore.dataset.audio.BandpassBiquad
mindspore.dataset.audio.BandrejectBiquad
mindspore.dataset.audio.BassBiquad
mindspore.dataset.audio.Biquad
mindspore.dataset.audio.ComplexNorm
mindspore.dataset.audio.ComputeDeltas
mindspore.dataset.audio.Contrast
mindspore.dataset.audio.DBToAmplitude
mindspore.dataset.audio.DCShift
mindspore.dataset.audio.DeemphBiquad
mindspore.dataset.audio.DetectPitchFrequency
mindspore.dataset.audio.Dither
mindspore.dataset.audio.EqualizerBiquad
mindspore.dataset.audio.Fade
2023-03-06 20:18:49 +08:00
mindspore.dataset.audio.Filtfilt
2022-11-22 13:52:02 +08:00
mindspore.dataset.audio.Flanger
mindspore.dataset.audio.FrequencyMasking
mindspore.dataset.audio.Gain
mindspore.dataset.audio.GriffinLim
mindspore.dataset.audio.HighpassBiquad
mindspore.dataset.audio.InverseMelScale
mindspore.dataset.audio.InverseSpectrogram
mindspore.dataset.audio.LFCC
2022-11-22 13:52:02 +08:00
mindspore.dataset.audio.LFilter
mindspore.dataset.audio.LowpassBiquad
mindspore.dataset.audio.Magphase
mindspore.dataset.audio.MaskAlongAxis
mindspore.dataset.audio.MaskAlongAxisIID
mindspore.dataset.audio.MelScale
mindspore.dataset.audio.MelSpectrogram
mindspore.dataset.audio.MFCC
2022-11-22 13:52:02 +08:00
mindspore.dataset.audio.MuLawDecoding
mindspore.dataset.audio.MuLawEncoding
mindspore.dataset.audio.Overdrive
mindspore.dataset.audio.Phaser
mindspore.dataset.audio.PhaseVocoder
mindspore.dataset.audio.Resample
mindspore.dataset.audio.PitchShift
2022-11-22 13:52:02 +08:00
mindspore.dataset.audio.RiaaBiquad
mindspore.dataset.audio.SlidingWindowCmn
mindspore.dataset.audio.SpectralCentroid
mindspore.dataset.audio.Spectrogram
mindspore.dataset.audio.TimeMasking
mindspore.dataset.audio.TimeStretch
mindspore.dataset.audio.TrebleBiquad
mindspore.dataset.audio.Vad
mindspore.dataset.audio.Vol
工具
^^^^^^
.. mscnautosummary::
:toctree: dataset_audio
:nosignatures:
:template: classtemplate.rst
mindspore.dataset.audio.BorderType
mindspore.dataset.audio.DensityFunction
mindspore.dataset.audio.FadeShape
mindspore.dataset.audio.GainType
mindspore.dataset.audio.Interpolation
mindspore.dataset.audio.MelType
mindspore.dataset.audio.Modulation
mindspore.dataset.audio.NormMode
mindspore.dataset.audio.NormType
mindspore.dataset.audio.ResampleMethod
mindspore.dataset.audio.ScaleType
mindspore.dataset.audio.WindowType
mindspore.dataset.audio.create_dct
2023-03-06 20:18:49 +08:00
mindspore.dataset.audio.linear_fbanks
2022-11-22 13:52:02 +08:00
mindspore.dataset.audio.melscale_fbanks