resnet50网络结构_Resnet50详解与实践(基于mindspore)
·
1. 简述
- Resnet是残差网络(Residual Network)的缩写,该系列网络广泛用于目标分类等领域以及作为计算机视觉任务主干经典神经网络的一部分,典型的网络有resnet50, resnet101等。Resnet网络的证明网络能够向更深(包含更多隐藏层)的方向发展。
- 论文:[Deep Residual Learning for Image Recognition](https://arxiv.org/abs/1512.03385)
2. Resnet50网络结构
- 首先对输入做了卷积操作,之后包含4个残差快(ResidualBlock), 最后进行全连接操作以便于进行分类任务,网络构成示意图如下所示, Resnet50则包含50个conv2d操作。
3. Resnet50模型训练(基于mindspore)
- 1)因resnet50网络层数更多,训练时间更长,因此考虑在GPU上进行训练
- 当前存在一些GPU训练平台,如矩池云(https://www.matpool.com/)可提供在线GPU环境来训练, 因此下面主要以GPU环境为例讲解resnet50网络训练
- 2)具体步骤如下所示:
- 下载Cifar10数据集
wget http://www.cs.toronto.edu/~kriz/cifar-10-binary.tar.gz
tar -zxvf cifar-10-binary.tar.gz
# 删除数据集中bin文件以外的文件(schema文件与readme文件)
-
- 下载代码并简单修改训练脚本:
# 下载docs仓库
git clone https://gitee.com/mindspore/docs
# 进入resnet50代码目录
cd tutorials/tutorial_code/resnet
# 修改设备类型及数据集路径
1. device类型修改为GPU:
origin: context.set_context(mode=context.GRAPH_MODE, device_target="Ascend")
modified:context.set_context(mode=context.GRAPH_MODE, device_target="GPU")
2. 数据集路径
origin: parser.add_argument('--checkpoint_path', type=str, default=None, help='CheckPoint file path.')
modified: parser.add_argument('--checkpoint_path', type=str, default="/***/cifar-10-binary", help='CheckPoint file path.')
- 进行训练
export DEVICE_ID=0
python cifar_resnet50.py
# 训练出的loss值如下所示:
epoch: 1 step: 10, loss is 2.300441
epoch: 1 step: 11, loss is 2.2890565
epoch: 1 step: 12, loss is 2.3309968
epoch: 1 step: 13, loss is 2.3018029
....
- 在矩池云训练的补充说明
1. 在矩池云的“主机市场”,寻找GPU 2080Ti的机器进行租赁,如:NVIDIA GeForce RTX 2080 Ti
2. 选择镜像时,选择“国内开源框架“即可,其已经包含mindspore安装包
3. resnet50网络训练所需数据,下载到本地后,可上传到矩池云网盘,上传后数据集在/mnt目录
4. 可以通过ssh方式,在本地登陆到购买的矩池云GPU机器,并执行训练命令即可,训练结果可通过scp命令拷贝到本地
5. 把握计费用规则(一般主机关机并删除释放资源则不再计费)
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)