图片分类-DenseNet

## DenseNet(图片分类/MindSpore) ## 1. 概述 此模型基于[Densely Connected Convolutional Networks](https://arxiv.org/abs/1608.06993 )中提出的模型结构实现,该算法会载入在[ILSVRC 2012 ImageNet](http://www.image-net.org/download-images )上的预训练模型,在用户数据集上做迁移学习。我们提供了训练代码和可用于训练的模型,用于实际场景的微调训练。 本算法训练过程中使用top_1_accuracy和top_5_accuracy作为评估指标 本算法的其他信息如下表所示: | 项目 | 说明 | | -------------- | ------------------------------------------------------------ | | 参考论文 | Densely Connected Convolutional Networks | | 使用框架 | MindSpore1.0.1 | | 训练集 | ILSVRC 2012 ImageNet中的train,一共有128万多个图片 | | 训练总epoch数 | 120 | | 训练batch_size | 256(8卡Ascend,每个卡32) | | 训练硬件及耗时 | 8卡Ascend混合精度O3训练,DenseNet-121约10小时,DenseNet-169约14小时,DenseNet-201约18小时,DenseNet-264约26小时 | | 测试集 | ILSVRC 2012 ImageNet中的val,一共有5万个图片 | | 推理硬件及速度 | Ascend910推理,约52ms/pic,若设置batchsize=32进行推理,10000个图片大约需要18到20秒 | | 输入图像尺寸 | 224*224 | | 原论文准确率 | top1和top5分别为: DenseNet-121 74.98% 92.29% DenseNet-169 76.20% 93.15% DenseNet-201 77.42% 93.66% DenseNet-264 77.85% 93.88% | | 本算法准确率 | top1和top5分别为: DenseNet-121 74.29% 92.00% DenseNet-169 75.48% 92.64% DenseNet-201 76.37% 93.07% DenseNet-264 76.68% 93.17% | ## 2、训练 ### 2.1. 算法基本信息 - 任务类型:图片分类 - 支持的框架引擎:mindspore1.0.1-ascend - 算法输入: - 存储在OBS上的数据集,必须按照ImageNet 数据集的格式进行存储,详情请查看下文第4节案例指导 - ImageNet预训练模型,在ImageNet上的准确率是 top1和top5分别为: DenseNet-121 74.29% 92.00% DenseNet-169 75.48% 92.64% DenseNet-201 76.37% 93.07% DenseNet-264 76.68% 93.17% - 算法输出: - 可用于ascend910部署推理的ckpt文件,以及onnx、air、mindir格式的模型,具体每种格式的模型使用方式可参考mindspore官方文档说明:https://www.mindspore.cn/tutorial/inference/zh-CN/master/index.html ### 2.2. 训练参数说明 | 名称 | 默认值 | 类型 | 是否必填 | 是否可修改 | 描述 | | ---------------- | ----------------------- | ------ | -------- | ---------- | ------------------------------------------------------------ | | 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(上传数据为目录形式),压缩包和目录的具体格式请查看下面[《ModelArts AI市场算法DenseNet使用指导》](https://bbs.huaweicloud.com/forum/thread-91206-1-1.html)所附连接 | | 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进行训练 | ### 2.3. 训练输出文件 训练完成后的输出文件如下(文件夹的名称中包含了该输出模型的准确率): ``` |- DenseNet-121_valacc0.7520161290322580645_epoch99 |- air |- model.air |- checkpoint |- model_checkpoint.ckpt |- mindir |- model.mindir |- onnx |- model.onnx ``` ## 3. 模型的部署推理 可根据[mindspore官方文档](https://www.mindspore.cn/tutorial/inference/zh-CN/master/index.html ),使用训练后输出的模型进行推理 **注意**:本算法输出的模型支持在Ascend910和Ascend310上进行推理 ## 4. 案例指导 本算法的详细使用方法,请查看[《ModelArts AI Gallery算法DenseNet使用指导》](https://marketplace.huaweicloud.com/markets/aihub/article/detail/?content_id=2b7449ca-4c00-4ef1-95c3-3df1cafa10a9)。
DenseNet(图片分类/MindSpore)
1. 概述
此模型基于Densely Connected Convolutional Networks中提出的模型结构实现,该算法会载入在ILSVRC 2012 ImageNet上的预训练模型,在用户数据集上做迁移学习。我们提供了训练代码和可用于训练的模型,用于实际场景的微调训练。
本算法训练过程中使用top_1_accuracy和top_5_accuracy作为评估指标
本算法的其他信息如下表所示:
项目 | 说明 |
---|---|
参考论文 | Densely Connected Convolutional Networks |
使用框架 | MindSpore1.0.1 |
训练集 | ILSVRC 2012 ImageNet中的train,一共有128万多个图片 |
训练总epoch数 | 120 |
训练batch_size | 256(8卡Ascend,每个卡32) |
训练硬件及耗时 | 8卡Ascend混合精度O3训练,DenseNet-121约10小时,DenseNet-169约14小时,DenseNet-201约18小时,DenseNet-264约26小时 |
测试集 | ILSVRC 2012 ImageNet中的val,一共有5万个图片 |
推理硬件及速度 | Ascend910推理,约52ms/pic,若设置batchsize=32进行推理,10000个图片大约需要18到20秒 |
输入图像尺寸 | 224*224 |
原论文准确率 | top1和top5分别为: DenseNet-121 74.98% 92.29% DenseNet-169 76.20% 93.15% DenseNet-201 77.42% 93.66% DenseNet-264 77.85% 93.88% |
本算法准确率 | top1和top5分别为: DenseNet-121 74.29% 92.00% DenseNet-169 75.48% 92.64% DenseNet-201 76.37% 93.07% DenseNet-264 76.68% 93.17% |
2、训练
2.1. 算法基本信息
-
任务类型:图片分类
-
支持的框架引擎:mindspore1.0.1-ascend
-
算法输入:
- 存储在OBS上的数据集,必须按照ImageNet 数据集的格式进行存储,详情请查看下文第4节案例指导
- ImageNet预训练模型,在ImageNet上的准确率是 top1和top5分别为: DenseNet-121 74.29% 92.00% DenseNet-169 75.48% 92.64% DenseNet-201 76.37% 93.07% DenseNet-264 76.68% 93.17%
-
算法输出:
- 可用于ascend910部署推理的ckpt文件,以及onnx、air、mindir格式的模型,具体每种格式的模型使用方式可参考mindspore官方文档说明:https://www.mindspore.cn/tutorial/inference/zh-CN/master/index.html
2.2. 训练参数说明
名称 | 默认值 | 类型 | 是否必填 | 是否可修改 | 描述 |
---|---|---|---|---|---|
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(上传数据为目录形式),压缩包和目录的具体格式请查看下面《ModelArts AI市场算法DenseNet使用指导》所附连接 |
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进行训练 |
2.3. 训练输出文件
训练完成后的输出文件如下(文件夹的名称中包含了该输出模型的准确率):
|- DenseNet-121_valacc0.7520161290322580645_epoch99
|- air
|- model.air
|- checkpoint
|- model_checkpoint.ckpt
|- mindir
|- model.mindir
|- onnx
|- model.onnx
3. 模型的部署推理
可根据mindspore官方文档,使用训练后输出的模型进行推理
注意:本算法输出的模型支持在Ascend910和Ascend310上进行推理
4. 案例指导
本算法的详细使用方法,请查看《ModelArts AI Gallery算法DenseNet使用指导》。
DenseNet(图片分类/MindSpore)
1. 概述
此模型基于Densely Connected Convolutional Networks中提出的模型结构实现,该算法会载入在ILSVRC 2012 ImageNet上的预训练模型,在用户数据集上做迁移学习。我们提供了训练代码和可用于训练的模型,用于实际场景的微调训练。
本算法训练过程中使用top_1_accuracy和top_5_accuracy作为评估指标
本算法的其他信息如下表所示:
项目 | 说明 |
---|---|
参考论文 | Densely Connected Convolutional Networks |
使用框架 | MindSpore1.0.1 |
训练集 | ILSVRC 2012 ImageNet中的train,一共有128万多个图片 |
训练总epoch数 | 120 |
训练batch_size | 256(8卡Ascend,每个卡32) |
训练硬件及耗时 | 8卡Ascend混合精度O3训练,DenseNet-121约10小时,DenseNet-169约14小时,DenseNet-201约18小时,DenseNet-264约26小时 |
测试集 | ILSVRC 2012 ImageNet中的val,一共有5万个图片 |
推理硬件及速度 | Ascend910推理,约52ms/pic,若设置batchsize=32进行推理,10000个图片大约需要18到20秒 |
输入图像尺寸 | 224*224 |
原论文准确率 | top1和top5分别为: DenseNet-121 74.98% 92.29% DenseNet-169 76.20% 93.15% DenseNet-201 77.42% 93.66% DenseNet-264 77.85% 93.88% |
本算法准确率 | top1和top5分别为: DenseNet-121 74.29% 92.00% DenseNet-169 75.48% 92.64% DenseNet-201 76.37% 93.07% DenseNet-264 76.68% 93.17% |
2、训练
2.1. 算法基本信息
-
任务类型:图片分类
-
支持的框架引擎:mindspore1.0.1-ascend
-
算法输入:
- 存储在OBS上的数据集,必须按照ImageNet 数据集的格式进行存储,详情请查看下文第4节案例指导
- ImageNet预训练模型,在ImageNet上的准确率是 top1和top5分别为: DenseNet-121 74.29% 92.00% DenseNet-169 75.48% 92.64% DenseNet-201 76.37% 93.07% DenseNet-264 76.68% 93.17%
-
算法输出:
- 可用于ascend910部署推理的ckpt文件,以及onnx、air、mindir格式的模型,具体每种格式的模型使用方式可参考mindspore官方文档说明:https://www.mindspore.cn/tutorial/inference/zh-CN/master/index.html
2.2. 训练参数说明
名称 | 默认值 | 类型 | 是否必填 | 是否可修改 | 描述 |
---|---|---|---|---|---|
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(上传数据为目录形式),压缩包和目录的具体格式请查看下面《ModelArts AI市场算法DenseNet使用指导》所附连接 |
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进行训练 |
2.3. 训练输出文件
训练完成后的输出文件如下(文件夹的名称中包含了该输出模型的准确率):
|- DenseNet-121_valacc0.7520161290322580645_epoch99
|- air
|- model.air
|- checkpoint
|- model_checkpoint.ckpt
|- mindir
|- model.mindir
|- onnx
|- model.onnx
3. 模型的部署推理
可根据mindspore官方文档,使用训练后输出的模型进行推理
注意:本算法输出的模型支持在Ascend910和Ascend310上进行推理
4. 案例指导
本算法的详细使用方法,请查看《ModelArts AI Gallery算法DenseNet使用指导》。