诛仙3官方网站做花灯答案,百度做网站刷排名,建设网站的知识竞赛,京市保障性住房建设投资中心网站昇思25天学习打卡营第05天 | 数据变换 Transforms 文章目录 昇思25天学习打卡营第05天 | 数据变换 TransformsCommon TransformsCompose Vision TransformsText TransformPythonTokenizerLookup Lambda Transforms数据处理模式Pipeline模式Eager模式 总结打卡 通常情况下的原始…昇思25天学习打卡营第05天 | 数据变换 Transforms 文章目录 昇思25天学习打卡营第05天 | 数据变换 TransformsCommon TransformsCompose Vision TransformsText TransformPythonTokenizerLookup Lambda Transforms数据处理模式Pipeline模式Eager模式 总结打卡 通常情况下的原始数据不能直接输入到网络中进行训练需要对数据进行预处理。 mindspoer.dataset提供了面向图像、文本、音频等数据类型的Transforms也支持Lambda函数。
Common Transforms
mindspore.dataset.transforms.Compose将多个数据增强操作组合使用mindspore.dataset.transforms.Concatenate在输入数据的某一个轴上进行数组拼接目前仅支持1D数组的拼接mindspore.dataset.transforms.Duplicate将输入的数据列复制得到新的数据列每次仅可以输入1个数据列进行复制mindspore.dataset.transforms.Fill将Tensor的所有元素填充为指定值mindspore.dataset.transforms.Mask用给定条件判断输入的 Tensor返回一个掩码Tensormindspore.dataset.transforms.OneHot对标签进行OneHot编码mindspore.dataset.transforms.PadEnd对输入Tensor进行填充要求pad_shape与输入Tensor的维度一致mindspore.dataset.transforms.RandomApply指定一组数据增强处理及被应用的概率mindspore.dataset.transforms.RandomChoice从一组数据增强变换中随机选择一个进行应用mindspore.dataset.transforms.RandomOrder随机打乱数据增强处理的顺序mindspore.dataset.transforms.Slice对输入进行切片mindspore.dataset.transforms.TypeCast将输入Tensor转换为指定类型mindspore.dataset.transforms.Unique对输入张量进行唯一运算每次只支持对一个数据列进行变换。
Compose
composed transforms.Compose([vision.Rescale(1.0 / 255.0, 0),vision.Normalize(mean(0.1307,), std(0.3081,)),vision.HWC2CHW()]
)通过Compose将缩放、标准化、图像格式转换组合为一个变换进行使用。
Vision Transforms
mindspore.dataset.vision.AdjustBrightness调整亮度mindspore.dataset.vision.AdjustContrast调整对比度mindspore.dataset.vision.AdjustGamma伽马矫正mindspore.dataset.vision.AdjustHue调整色调mindspore.dataset.vision.AdjustSaturation调整饱和度mindspore.dataset.vision.AdjustSharpness调整锐度mindspore.dataset.vision.Affine进行仿射变换保持图像中心不动mindspore.dataset.vision.AutoAugment应用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解码为RGB格式mindspore.dataset.vision.Equalize直方图均衡化mindspore.dataset.vision.Erase使用指定的值擦除输入图像mindspore.dataset.vision.FiveCrop在输入PIL图像的中心和四个角处分别裁剪指定大小的子图mindspore.dataset.vision.GaussianBlur使用指定的高斯核对输入图形进行模糊mindspore.dataset.vision.Grayscale将输入PIL图像转换为灰度图mindspore.dataset.vision.HorizontalFlip水平翻转mindspore.dataset.vision.HsvToRgb将输入的HSV格式numpy.ndarray转换为RGB格式mindspore.dataset.vision.HWC2CHW将图像的shape从H, W, C转换为C, H, Wmindspore.dataset.vision.Invert对RGB图像进行色彩反转mindspore.dataset.vision.LinearTransformation使用指定的变换方阵和均值向量对输入的numpy.ndarray图像进行线性变换mindspore.dataset.vision.MixUp随机混合一批输入的numpy.ndarray图像及其标签mindspore.dataset.vision.MixUpBatch对输入批次的图像和标签应用混合转换mindspore.dataset.vision.Normalize根据均值和方差对输入图像归一化mindspore.dataset.vision.NormalizePad根据均值和方差对输入图像归一化然后填充一个全零的额外通道mindspore.dataset.vision.Pad填充图像mindspore.dataset.vision.PadToSize将图像填充到固定大小mindspore.dataset.vision.Perspecctive进行透视变换mindspore.dataset.vision.Posterize减少图像颜色通道的比特位数使图像变得高对比和颜色鲜艳类似于海报或印刷品的效果mindspore.dataset.vision.RandAugment应用RandAugment数据增强方法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按照指定的概率擦除numpy.ndarray图像上随机矩形区域内的像素mindspore.dataset.vision.RandomGrayscale按指定概率将PIL图像转换为灰度图mindspore.dataset.vision.RandomHorizontalFlip按概率随机进行水平翻转mindspore.dataset.vision.RandomHorizontalFlipWithBBox按概率对输入图形及其边界框进行随机水平翻转mindspore.dataset.vision.RandomInvert按概率随机反转图像颜色mindspore.dataset.vision.RandomLighting将AlexNet PCA的噪声添加到图像中mindspore.dataset.vision.RandomPerspective按概率对PIL图像进行透视变换mindspore.dataset.vision.RandomPosterize随机减少图像颜色通道的比特位数使图像变得高对比度和颜色鲜艳mindspore.dataset.vision.RandomResizedCrop对输入图像随机裁剪并使用指定的mindspore.dataset.vision.Inter插值方式调整为指定尺寸大小mindspore.dataset.vision.RandomResizedCropWithBBox对输入图形随机裁剪且随机调整纵横比并将处理后的图像调整为指定的尺寸大小并调整边界框mindspore.dataset.vision.RandomResize使用随机选择的mindspore.dataset.vision.Inter插值方式去调整尺寸大小mindspore.dataset.vision.RandomResizeWithBBox使用随机选择的mindspore.dataset.vision.Inter插值方式去调整它的尺寸大小并调整边界框的尺寸大小mindspore.dataset.vision.RandomRotation在指定角度范围内随机旋转输入图形mindspore.dataset.vision.RandomSelectSubpolicy从策略列表中随机选择一个子策略应用于输入图像mindspore.dataset.vision.RandomSharpness在固定或随即范围内调整锐度mindspore.dataset.vision.RandomSolarize在给定阈值范围内随机选择一个子范围对子范围内的像素将像素值设置为255-原像素mindspore.dataset.vision.RandomVerticalFlip以概率随机进行垂直翻转mindspore.dataset.vision.RandomVerticalFlipWithBBox以概率对图像和边界框进行随机垂直翻转mindspore.dataset.vision.Rescale基于给定缩放因子和平移因子调整像素值mindspore.dataset.vision.Resize使用给定的mindspore.dataset.vision.Inter插值方式调整为指定的尺寸大小mindspore.dataset.vision.ResizedCrop裁切图像指定区域并放缩到指定大小mindspore.dataset.vision.ResizeWithBBox调整给定尺寸大小并调整边界框的尺寸大小mindspore.dataset.vision.RgbToHsv将RGB格式的numpy.ndarray图像转换为HSV格式mindspore.dataset.vision.Rotate旋转指定度数mindspore.dataset.vision.SlicePatches在水平和垂直方向上将Tensor切片为多个块mindspore.dataset.vision.Solarize通过反转阈值内的所有像素值对输入图形进行曝光mindspore.dataset.vision.TenCrop在输入PIL图像的中心与四个角处分别裁剪为指定尺寸大小的子图并将其翻转图一并返回mindspore.dataset.vision.ToNumpy将输入PIL图像转换为numpy.ndarray图像mindspore.dataset.vision.ToPIL将numpy.ndarray格式的解码图像转换为PIL.Image.Imagemindspore.dataset.vision.ToTensor将PIL图像或numpy.ndarray图像转换为指定类型的numpy.ndarray图像像素从 [ 0 , 255 ] [0, 255] [0,255]放缩为 [ 0.0 , 1.0 ] [0.0, 1.0] [0.0,1.0]shape将从H, W, C 调整为 C, H, Wmindspore.dataset.vision.ToType将输入转换为指定MindSpore或NumPy数据类型mindspore.dataset.vision.TrivialAugmentWide使用TrivialAugmentWide数据增强方法mindspore.dataset.vision.UniformAugment从指定序列中均匀采样一批数据处理操作并按顺序随机执行mindspore.dataset.vision.VerticalFlip垂直翻转。
Text Transform
文本数据需要有分词Tokenize、构建词表、Token转Index等操作。
PythonTokenizer
分词操作时文本数据的基础处理方法PythonTokenizer允许用户自由实现分词策略随后利用map操作将分词器应用到输入文本中
texts [Welcome to Beijing]
test_dataset GeneratorDataset(texts, text)def my_tokenizer(content):return content.split()test_dataset test_dataset.map(text.PythonTokenizer(my_tokenizer))Lookup
Lookup为词表映射变换用来将Token转换为Index。使用Lookup之前需要构造词表一般可以加载已有的词表或使用Vocab生成词表。
vocab text.Vocab.from_dataset(test_dataset)
test_dataset test_dataset.map(text.Lookup(vocab))Lambda Transforms
Lanbda Transform可以加载任意定义的Lambda函数提供足够的灵活度。
test_dataset GeneratorDataset([1, 2, 3], data, shuffleFalse)
test_dataset test_dataset.map(lambda x: x * 2)def func(x):return x * x 2
test_dataset test_dataset.map(lambda x: func(x))数据处理模式
Pipeline模式
Pipeline模式需要使用map方法将数据变换交由map调度由map负责启动和执行给定的Transform。 这种模式能够在资源条件下允许的情况下获得更高的性能。
Eager模式
在Eager模式下执行Transforms不需要依赖map而是直接以函数式调用的方式执行Transforms。因此代码更为简洁且能立即执行得到结果适合在小型数据增强实验、模型推理等轻量化场景中使用。
总结
通过这一小节的内容对MindSpore中的数据变换有了深入的了解通过查阅官方文档对每一类数据所提供的Transform有了大概的认识此外还了解了一般的文本数据处理流程了解了两种数据处理模式。
打卡