mindspore/model_zoo/official/cv/nasnet/README_CN.md

5.8 KiB
Raw Blame History

目录

NASNet概述

论文: Barret Zoph, Vijay Vasudevan, Jonathon Shlens, Quoc V. Le. Learning Transferable Architectures for Scalable Image Recognition. 2017.

模型架构

NASNet总体网络架构如下

链接

数据集

使用的数据集:imagenet

  • 数据集大小125G共1000个类、1.2万张彩色图像 - 训练集120G共1.2万张图像 - 测试集5G共5万张图像
  • 数据格式RGB * 注数据在src/dataset.py中处理。

环境要求

脚本说明

脚本及样例代码

.
└─nasnet
  ├─README.md
  ├─README_CN.md
  ├─scripts
    ├─run_standalone_train_for_gpu.sh # 使用GPU平台启动单机训练单卡
    ├─run_distribute_train_for_gpu.sh # 使用GPU平台启动分布式训练8卡
    └─run_eval_for_gpu.sh             # 使用GPU平台进行启动评估
  ├─src
    ├─config.py                       # 参数配置
    ├─dataset.py                      # 数据预处理
    ├─loss.py                         # 自定义交叉熵损失函数
    ├─lr_generator.py                 # 学习率生成器
├─nasnet_a_mobile.py                  # 网络定义
├─eval.py                             # 评估网络
├─export.py                           # 转换检查点
└─train.py                            # 训练网络

脚本参数

在config.py中可以同时配置训练参数和评估参数。

'random_seed':1,                # 固定随机种子
'rank':0,                       # 分布式训练进程序号
'group_size':1,                 # 分布式训练分组大小
'work_nums':8,                  # 数据读取人员数
'epoch_size':500,               # 总周期数
'keep_checkpoint_max':100,      # 保存检查点最大数
'ckpt_path':'./checkpoint/',    # 检查点保存路径
'is_save_on_master':1           # 在rank0上保存检查点分布式参数
'batch_size':32,                # 输入批次大小
'num_classes':1000,             # 数据集类数
'label_smooth_factor':0.1,      # 标签平滑因子
'aux_factor':0.4,               # 副对数损失系数
'lr_init':0.04,                 # 启动学习率
'lr_decay_rate':0.97,           # 学习率衰减率
'num_epoch_per_decay':2.4,      # 衰减周期数
'weight_decay':0.00004,         # 重量衰减
'momentum':0.9,                 # 动量
'opt_eps':1.0,                  # epsilon参数
'rmsprop_decay':0.9,            # rmsprop衰减
'loss_scale':1,                 # 损失规模

训练过程

用法

# 分布式训练示例8卡
sh run_distribute_train_for_gpu.sh DATA_DIR
# 单机训练
sh run_standalone_train_for_gpu.sh DEVICE_ID DATA_DIR

运行

# GPU分布式训练示例8卡
sh scripts/run_distribute_train_for_gpu.sh /dataset/train
# GPU单机训练示例
sh scripts/run_standalone_train_for_gpu.sh 0 /dataset/train

结果

可以在日志中找到检查点文件及结果。

评估过程

用法

# 评估
sh run_eval_for_gpu.sh DEVICE_ID DATA_DIR PATH_CHECKPOINT

启动

# 检查点评估
sh scripts/run_eval_for_gpu.sh 0 /dataset/val ./checkpoint/nasnet-a-mobile-rank0-248_10009.ckpt

训练过程中可以生成检查点。

结果

评估结果保存在脚本路径下。路径下的日志中,可以找到如下结果: acc=73.5%(TOP1)

模型描述

性能

训练性能

参数 NASNet
资源 NV SMX2 V100-32G
上传日期 2020-09-24
MindSpore版本 1.0.0
数据集 ImageNet
训练参数 src/config.py
优化器 Momentum
损失函数 SoftmaxCrossEntropyWithLogits
损失值 1.8965
总时间 8卡运行约144个小时
检查点文件大小 89 M(.ckpt文件)

评估性能

参数
资源 NV SMX2 V100-32G
上传日期 2020-09-24
MindSpore版本 1.0.0
数据及 ImageNet, 1.2W
batch_size 32
输出 概率
精确度 acc=73.5%(TOP1)

ModelZoo主页

请浏览官网主页