学习内容
使用迁移学习的方法对ImageNet数据集中的狼和狗图像进行分类。
做法:在一个非常大的基础数据集上训练得到一个预训练模型,再使用该模型来初始化网络的权重参数或作为固定特征提取器应用于特定的任务中。
数据准备
1.下载数据集,使用download
接口来下载所需要用到的狗与狼分类数据集。
2.解压数据集,下载完成后,自动将数据集解压到当前目录下。
加载数据集
1.使用mindspore.dataset.ImageFolderDataset
接口来加载数据集。
2.狼狗数据集提取自ImageNet分类数据集,进行图像增强操作,如裁剪、翻转、归一化等,用来增强模型的泛化能力。
数据集可视化
从mindspore.dataset.ImageFolderDataset
接口中加载的训练数据集返回值为字典。
1.可通过 create_dict_iterator
接口创建数据迭代器。
2.使用 next
迭代访问数据集,使用 next
一次可获取18个图像及标签数据。
3.对获取到的图像及标签数据进行可视化,标题为图像对应的label名称。
训练模型
1.构建Resnet50网络,需要使用MindSpore的模型构建API搭建ResNet50模型。
2.固定特征进行训练,注意需要冻结除最后一层之外的所有网络层。
训练和评估
使用验证集评估模型性能,保存评估精度最高的ckpt文件。
可视化模型预测
1.使用固定特征得到的best.ckpt文件。
2.对验证集中的狼和狗图像数据进行预测。
3.根据预测结果和真实标签的对比,若预测字体为蓝色即为预测正确,若预测字体为红色则预测错误。
如图