论文学习
[华为云AI经典论文复现] ModelArts AI Gallery算法DenseNet使用指导

发布于42个月以前

  • 0
  • 0
  • 251

发布于42个月以前

本文档是ModelArts AI Gallery算法DenseNet(以下简称为本算法)的详细使用方法。

本算法使用ILSVRC 2012  ImageNet图片分类数据集中的train集和val集,使用train集训练,在val上single-crop测试达到的准确率为:

DenseNet-121     top1:74.29%   top5:92.00%

DenseNet-169     top1:75.48%   top5:92.64%

DenseNet-201     top1:76.37%   top5:93.07%

DenseNet-264     top1:76.68%   top5:93.17%

1. 准备数据集

本算法支持的数据集格式为ILSVRC 2012  ImageNet图片分类数据集。

ILSVRC 2012  ImageNet中总共有1000个类别,其中train训练集有为1281167张图片,val验证集有50000张图片。该数据集通常作为业界衡量人图片分类准曲率的可靠指标。数据集的具体信息,包括评估脚本、标注文件、提交测试demo等可查看数据集官网

ILSVRC 2012  ImageNet数据集旨在用于:
(1) 评估图片分类模型的准确率检测;
(2) 基于此数据集训练出通用的图片分类模型预训练参数。

1.1 下载数据集

首先需要在数据集官网下载ILSVRC 2012  ImageNet数据集,下载前需要先登录账号,如下图所示:

image.png

注:如果还没账号需要先注册,注册时建议使用edu邮箱注册,其它邮箱注册后有可能没法下载完整的数据集,且下载的过程中不建议使用多线程下载,否则可能出现禁止下载的情况;数据集总共将近有150G的容量,若觉得官网下载太慢,也可使用其它下载途径,只要在百度上搜索ImageNet相关信息,就能找到很多其它下载途径

下载好ImageNet数据集解压完后会得到一个imagenet_original目录,ImageNet所有的数据信息都在该目录中,目录结构如下:

└─imagenet_original

    ├─train

        ├─n01440764

        ├─n01443537

        ├─n01484850

        ......

     ├─val

        ├─n01440764

        ├─n01443537

        ├─n01484850

        ......

     ├─subset

     ├─caffe_ilsvrc12

然后将caffe_ilsvrc12目录中的synset_words.txt文件复制到val文件夹中,并重命名为label.txt,该文件为标签信息文件,训练过程中(即参数eval=False)不需要使用这个文件,但预测评估过程(即eval=True)需要使用这个文件,否则无法输出预测标签,预测评估过程会出错;subset和caffe_ilsvrc12目录本算法中不需要使用,可以直接删掉;操作完后,最终目录格式如下:

└─imagenet_original

    ├─train

        ├─n01440764

        ├─n01443537

        ├─n01484850

        ......

     ├─val

        ├─n01440764

        ├─n01443537

        ├─n01484850

        ......

        ├─label.txt


到此,该数据集目录可以直接上传至OBS,用于训练和评估;如果是训练,则需要将data_url参数设置为imagenet_original目录在OBS上的访问路径,如果是预测评估,则需要将data_url参数设置为val目录所在OBS上的访问路径;

但由于该数据集文件数量很多,为了方便数据传输和节约数据传输的时间,可以将数据集进行打包压缩;要注意的是,进行打包时,被打包的文件夹名称以及打包后的压缩包名称固定不能修改,如下所述:

训练时可以将整个imagenet_original进行tar.gz分包压缩,每个分包10GB,总共有15个压缩包(最后一个压缩包2GB),每个分包的名称为imagenet.tar.gza*,如下图所示:

image.png

然后可以将此15个分包上传至OBS的同一个目录下面,将data_url参数设置为该15个分包的父目录所在的OBS访问路径;在训练过程中,使用tar.gz的方式与直接使用目录的方式相比,数据copy时间会减少20多分钟(训练ImageNet数据集时,直接使用目录copy时间约50分钟,而复制tar.gz压缩分包的方式大约30分钟以内)

预测评估时也可以将val目录打包压缩成val.zip,然后上传至OBS中,data_url设置成val.zip文件所在的父目录的OBS访问路径;

注:1.上传压缩包时,压缩包所在的OBS目录不要存放其它无关文件,避免上传多余的文件

       2.上传不同格式的数据集data_forma参数也要设置对应的值,直接上传目录设置为dir,如果为tar.gz压缩包,则设置为tar.gz,如果为zip压缩包,则设置为zip

       3.打包时的命名要求必须严格遵守,不然训练和预测评估将会出错

1.2 安装OBS Browser+并上传数据集

ModelArts使用对象存储服务(OBS)来存储数据,实现安全、高可靠和低成本的存储需求。OBS Browser+是一款用于访问和管理对象存储服务(Object Storage Service,OBS)的图形化工具,支持完善的桶管理和对象管理操作。OBS Browser+的图形化界面可以非常方便地让用户在本地对OBS进行管理,例如:创建桶、上传下载文件、浏览文件等。

具体操作步骤如下:
(1)点此下载OBS Browser+,下载完成后解压缩,双击exe进行安装,安装完成后运行;

(2)登录界面如下图所示,需要您填写账号名、Access Key ID(AK)和Secret Accsee Key(SK),参考此文档,获取AK和SK,华为云上的许多产品都需要用到访问密钥,请妥善保存该密钥文件,然后参考下图填写您的华为云账号名及刚获取的AK和SK,点击登录;
2_login_in_obs_browser.jpg

(3)参考下图,点击“创建桶”,输入桶名称,注意:区域要选择华北-北京四、标准存储、私有、关闭多AZ,桶名需自定义,OBS桶名要全局唯一,如提示桶名已存在,则需要您修改为其他名称,比如本文设置桶名为paper-reproduction-01。您设置的桶名必须与此不同,如在下文的操作指导中看到paper-reproduction-01,请主动将桶名替换为您自己的桶名,下文将不再进行提示;
3_create_bucket.jpg

(4)点击桶名称,进入到桶中,点击“新建文件夹”,输入文件夹名称,如“train_input”,点击进入文件夹,再新建“datasets”(具体文件夹名称、以及文件夹层数可自由设置),点击“上传”->“添加文件”(或者文件夹)-> 选择本地准备好的数据集目录或者压缩包(如imagenet.tar.gza*或者val.zip)进行上传(本算法中用到的ImageNet文件数量很多,所以上传解压后的文件夹,速度会较慢,建议使用imagenet.tar.gza*或val.zip压缩包的形式上传) –> 确定,如下图所示;

4_upload_files.jpg

(5)点击OBS Browser+左侧的“任务管理”,可查看数据上传进度。如下图所示,点击设置,在基础设置中,设置最大并发数为最大值50,可以加快数据上传速度
5_upload_files_2.jpg

2. 订阅本算法

点击本页面右上方的【订阅】按钮。然后点击页面下方的【下一步】按钮,再点击【确认付款】按钮,最后点击【确定】按钮进入我的订阅页面,可以看到刚刚订阅的算法。点击【应用控制台】超链接,选择华北-北京四区域,进入算法管理页面。

如下图所示,点击“同步”按钮,同步算法,可以点击刷新按钮,刷新状态。当状态变成就绪时,表示同步成功。
6_sync&train_job.jpg

3. 创建训练作业

点击上图中的“创建训练作业”,按照下表填写训练作业参数:

名称 默认值 类型 是否必填 是否可修改 描述
device_target Ascend string 训练用的硬件平台,有CPU、GPU和Ascend,本算法支持Ascend训练
data_url data/imagenet_original/ string 训练或者评估输入的数据集 (支持上传压缩包和文件目录;如果使用文件夹形式的数据,则填写该文件夹在OBS上的访问路径;如果使用zip或者tar.gz压缩包形式的数据,则填写该压缩包的父目录在OBS上的访问路径)
train_url output/ string 训练或者评估结果输出路径
data_format tar.gz string 可选值zip(上传数据为zip压缩包)、tar.gz(训练数据集的分包压缩形式)或者dir(上传数据为目录形式),压缩包和目录的具体格式要求请参考上面第一节《数据集准备》
epoch_size 120 int 模型训练的epoch数量
batch_size 256 int 训练或者评估时每个batch的大小
init_lr 0.1 string 训练的初始学习率
momentum 0.9 string 优化器的动量系数
load_weight weight/best_model.ckpt string 可加载的预训练模型,当eval=True时,该参数为必填项 ;默认值是在ImageNet数据集上的预训练模型,该预训练模型已包含在本算法中
weight_decay 0.0001 string 优化器中的正则化权重衰减量
img_size 224 int 训练图片的尺寸,默认值与论文中保持一致
num_classes 1000 int 类别数量,默认值为ImageNet类别数量
conv2d_keep_prob 1.0 string dropout的设置值,默认与论文中训练ImageNet保持一致
architecture DenseNet-121 string 可选值为DenseNet-121、DenseNet-169、DenseNet-201和DenseNet-264
amp_level O3 string 混合精度训练的设置值,根据mindspore官方文档,Ascend硬件下训练建议使用O3,如效果不佳,可根据实际模型训练情况更改
optimizer SGD string 优化器,默认与论文保持一致
no_top False string 加载预训练模型时,是否包含顶部的分类器,若加载的预训练模型中的类别数与训练模型设置的num_classes不同,则必须设置为True,否则会报错,无法加载预训练模型
eval False string eval=True,则进行预测评估;eval=False进行训练

点击下一步,提交,训练作业的状态会经历“初始化”、“部署中”、“运行中”和“运行成功”四个状态。在训练过程中,每一个epoch之后都会检测是否为当前最优模型,如果最优,则会保存到OBS中,即在上表中指定的“train_url”路径下会自动生成一个文件夹,文件夹的命名包含了本输出的模型准确率,如‘’DenseNet-121_valacc0.7520161290322580645_epoch99‘’,文件夹下面又有4个目录,分别为checkpoint、air、onnx、mindir,里面存放输出的对应格式的模型文件,具体不同的格式如何使用,请参考mindspore官方部署推理文档

4. 模型评估

参考本文第3节中的步骤,创建“训练作业”,按照下表设置训练参数:

参数名 参数值
data_url

数据存储位置,选择测试集所在路径,如obs://paper-reproduction-01/algorithms/train_input/datasets/

(这里如果使用的是验证集的zip压缩包,则需要选择zip压缩包父目录的OBS路径,如上述连接,

实际copy的是obs://paper-reproduction-01/algorithms/train_input/datasets/val.zip

train_url 模型的输出,选择obs://paper-reproduction-01/algorithms/eval_output
load_weight 加载要评估的模型,如obs://paper-reproduction-01/algorithms/weight/best_model.ckpt
eval True
data_format zip
batch_size 1
architecture DenseNet-121

点击下一步,提交,训练作业的状态会经历“初始化”、“部署中”、“运行中”和“运行成功”四个状态。训练作业运行成功后,在上表中指定的“train_url”路径下会自动生成infer_results.txt目录和eval_result.txt文件,其中infer_results.txt目录中是所有图片的分类结果    。

评论 0

登录后评论

    euuufe

    作者相关内容

    2021第三届华为云人工智能大赛无人车挑战杯学习资料
    发布于44个月以前
    华为云AI论文精读会2021第二十期:轻量化神经网络MobileNet系列论文精读
    发布于41个月以前
    [华为云AI经典论文复现] AI Gallery CrowdDet算法使用介绍
    发布于42个月以前
    华为云AI论文精读会2021第四期:Dynamic RCNN:一种有效提升RCNN系列网络表现的动态训练方法
    发布于42个月以前
    华为云AI论文精读会2021第十九期:ACGAN-动漫头像生成
    发布于41个月以前

    暂无数据

    热门内容推荐

    快速体验10个精选论文复现算法模型,赢取蓝牙音箱、体脂秤、ModelArts图书!
    WAYNE 发布于44个月以前
    华为云AI论文精读会2021第二十期:轻量化神经网络MobileNet系列论文精读
    euuufe 发布于41个月以前
    [华为云AI经典论文复现] AI Gallery CrowdDet算法使用介绍
    euuufe 发布于42个月以前
    Fast-SCNN: Fast Semantic Segmentation Network
    spy 发布于44个月以前
    华为云AI论文精读会2021第四期:Dynamic RCNN:一种有效提升RCNN系列网络表现的动态训练方法
    euuufe 发布于42个月以前

    暂无数据