【Mindspore学习】【多标签分类】是否有图像多标签分类样例
下面的代码你直接调用create_dataset("/home/train/")就可以转换成训练用的数据了。如果你的图片是jpg格式的或者jpeg格式的,将训练用的猫图片和狗图片分成两个文件夹0和1存放。比如放在/home/train/0/放小猫图片。/home/train/1/放小狗图片。实现图片多标签分类,比如一张图的标签为‘猫’和‘狗’;...
·
实现图片多标签分类, 比如: 一张图的标签为‘猫’和‘狗’;
【操作步骤&问题现象】
1、如何构建训练集
2、模型样例
如果你的图片是jpg格式的或者jpeg格式的,将训练用的猫图片和狗图片分成两个文件夹0和1存放。
比如:放在/home/train/0/ 放小猫图片。 /home/train/1/放小狗图片。
下面的代码你直接调用create_dataset("/home/train/")就可以转换成训练用的数据了。
import mindspore.dataset as ds
import mindspore.common.dtype as mstype
import mindspore.dataset.vision.c_transforms as C
import mindspore.dataset.transforms.c_transforms as C2
def create_dataset(datasets_path):
ds1 = ds.ImageFolderDataset(datasets_path, num_parallel_workers=8, extensions=[".jpg", ".JPEG"])
batch_size = 32
image_size = 32
mean = [0.485 * 32, 0.456 * 32, 0.406 * 32]
std = [0.229 * 32, 0.224 * 32, 0.225 * 32]
trans = [
# 图片拉伸,缩放等操作,自己按照需要操作
C.RandomCropDecodeResize(image_size, scale=(0.08, 1.0), ratio=(0.75, 1.333)),
# 随机裁剪图片,这里的0.5表示图片视野的一半
C.RandomHorizontalFlip(prob=0.5),
# 归一化标准化,数值需按照自己的图片实际情况设置
C.Normalize(mean=mean, std=std),
# 通道转换
C.HWC2CHW()
]
type_cast_op = C2.TypeCast(mstype.int32)
ds1 = ds1.map(input_columns="image", num_parallel_workers=8, operations=trans)
ds1 = ds1.map(input_columns="label", num_parallel_workers=8, operations=type_cast_op)
# shuffle混洗操作必须的
ds1 = ds1.shuffle(buffer_size=100)
# batch操作看内存大小,自己随意设置
ds1 = ds1.batch(batch_size, drop_remainder=True)
# repeat操作数据重复几倍,数字按照自己需要填
ds1 = ds1.repeat(5)
return ds1
昇腾计算产业是基于昇腾系列(HUAWEI Ascend)处理器和基础软件构建的全栈 AI计算基础设施、行业应用及服务,https://devpress.csdn.net/organization/setting/general/146749包括昇腾系列处理器、系列硬件、CANN、AI计算框架、应用使能、开发工具链、管理运维工具、行业应用及服务等全产业链
更多推荐

所有评论(0)