# 常用转化用算子
import mindspore.dataset.transforms.c_transforms as c
# 图像转化用算子
import mindspore.dataset.vision.c_transforms as cv
# mind spore.common包中会有诸如type形态转变、权重初始化等的常规工具。
from mindspore.common import dtype
# Mind spore模块主要用于本次实验卷积神经网络的构建,包括很多子模块。
import mindspore
# 主要包括CI FAR-10数据集的载入与处理,也可以自定义数据集。
import mindspore.dataset as ds
# 数据预处理,再生成装载数据
def my_dataset(my_data, batch__size=32, status="train"):
# 设置类型变化
typecast_op = c.TypeCast(dtype.int32)
my_data = my_data.map(input_columns="label", operations=typecast_op)
if status == "train":
# 设置随机裁剪参数
random_crop_op = cv.RandomCrop([32, 32], [4, 4, 4, 4])
my_data = my_data.map(input_columns="image", operations=random_crop_op)
# 设置随机翻转参数
random_horizontal_op = cv.RandomHorizontalFlip()
my_data = my_data.map(input_columns="image", operations=random_horizontal_op)
# 重设大小
resize_op = cv.Resize((32, 32))
my_data = my_data.map(input_columns="image", operations=resize_op)
# 归一化
rescale = 1.0 / 255.0
# 平移
shift = 0.0
rescale_op = cv.Rescale(rescale, shift)
my_data = my_data.map(input_columns="image", operations=rescale_op)
# RGB三通道分别设定mean和std
normalize_op = cv.Normalize((0.4914, 0.4822, 0.4465), (0.2023, 0.1994, 0.2010))
my_data = my_data.map(input_columns="image", operations=normalize_op)
# 设置通道变化
channel_swap_op = cv.HWC2CHW()
my_data = my_data.map(input_columns="image", operations=channel_swap_op)
# 打乱顺序shuffle
my_data = my_data.shuffle(buffer_size=1000)
# 切分数据集到batch_size
my_data = my_data.batch(batch__size, drop_remainder=True)
return my_data
MindSpore数据预处理,并生成batch装载数据
最新推荐文章于 2023-02-20 13:59:14 发布