昇思MindSpore打卡营 9号 -ResNet50图像分类 学习心得

ResNet网络介绍

2015年,微软实验室的何恺明提出了ResNet50网络,ResNet50网络的残差网络结构,减弱了传统的卷积神经网络堆叠到一定深度时出现的退化问题。

resnet-1

                                                                             图(1) 

由图(1)可见,传统卷积神经网络在CIFAR-10数据集上,56层网络训练比20层网络训练误差和测试误差更大。

resnet-4

                                                                            图(2)

由图(2)可见,在CIFAR-10数据集上,ResNet网络层数越深,其训练误差和测试误差越小。

数据集准备与加载

url = "https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/notebook/datasets/cifar-10-binary.tar.gz"

download(url, "./datasets-cifar10-bin", kind="tar.gz", replace=True)

使用download接口下载并解压数据

    data_set = ds.Cifar10Dataset(dataset_dir=dataset_dir,
                                 usage=usage,
                                 num_samples=10000,
                                 num_parallel_workers=workers,
                                 shuffle=True)

使用Cifar10Dataset接口加载数据集

构建网络

残差网络结构

残差网络结构图如下图所示。主分支通过堆叠一系列的卷积操作得到,shotcuts从输入直接到输出,主分支输出的特征矩阵𝐹(𝑥)F(x)加上shortcuts输出的特征矩阵𝑥x得到𝐹(𝑥)+𝑥F(x)+x,通过Relu激活函数后即为残差网络最后的输出。

residual

 

构建ResNet50网络 

ResNet50网络共有5个卷积结构,一个平均池化层,一个全连接层。

模型训练

先是调用resnet50构造ResNet50模型,并设置pretrained参数为True,然后定义优化器和损失函数,逐个epoch打印训练的损失值和评估精度,并且保存评估精度最高的ckpt文件(resnet50-best.ckpt)到当前路径下的BestCheckPoint下。

可视化模型预测

5个epochs下模型在验证数据集的预测准确率在70%左右,如果想要达到理想的训练效果,建议训练80个epochs。

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值