您对华为云开发者网站的整体评价?

非常不满意 非常满意

0

1

2

3

4

5

6

7

8

9

10

*您遇到了哪些问题?(最多选三项)
*您感到满意的原因是?(最多选三项)
*请针对您所遇到的问题给出具体的反馈
200/200
算法
图像分类-ResNet_v1_50(Ascend)
基于TensorFlow, Ascend910训练, Ascend310推理
ModelArts
28个月以前
521MB 4452 2935
  • 标签
    TensorFlow图像分类GPU
  • 资产ID fb03c9e2-bd5a-49e6-8455-af8ab2f5f788

描述

ResNet_v1_50(图像分类/TensorFlow/Ascend910训练)

适用的案例

适用的数据集

OBS原始数据集格式

仅支持切分的情况

your_local_path/flowers
    |- train --------------- 训练集
		|- classA   ------------- 类别A
			|- A_0.jpg
			|- A_1.jpg
			|- ...
			|- A_n.jpg
		|- classB    ------------ 类别B
			|- B_0.jpg
			|- B_1.jpg
			|- ...
			|- B_n.jpg
		|- classC --------------- 类别C
			|- C_0.jpg
			|- C_1.jpg
			|- ...
			|- C_n.jpg
		以此类推
		...
		
	|- eval --------------- 测试集
		|- classA   ------------- 类别A
			|- A_0.jpg
			|- A_1.jpg
			|- ...
			|- A_n.jpg
		|- classB    ------------ 类别B
			|- B_0.jpg
			|- B_1.jpg
			|- ...
			|- B_n.jpg
		|- classC --------------- 类别C
			|- C_0.jpg
			|- C_1.jpg
			|- ...
			|- C_n.jpg
		以此类推
		...

1. 概述

该模型为ResNet系列,深度为50层,此模型基于Deep Residual Learning for Image Recognition中提出的模型结构实现。可以用图像分类任务,比如猫狗分类、花卉分类等等。用户提供一系列带有标注的数据集,该算法会载入在ImageNet-1000上的预训练模型,在用户数据集上做迁移学习。使用TensorFlow和Ascend910芯片进行训练,训练后生成的模型可直接在ModelArts平台部署为在线服务,支持使用Ascend 310进行推理。

2. 训练

2.1. 算法基本信息

  • 适用场景:图像分类

  • 支持的框架引擎:Ascend-Powered-Engine tensorflow_1.15-cann_5.1.0-py_3.7-euler_2.8.3-aarch64

  • 算法输入:

    • ModelArts数据管理平台发布的“图像分类”数据集(数据集必须设置“训练验证比例“),建议用户以8:2或9:1的比例进行切分,即“训练验证比例“设置为0.8或0.9。
    • ImageNet预训练模型,在ImageNet上的top正确率为top-1: 74.6%, top-5: 92.0%。
  • 算法输出:

    • 用于TF-Serving推理的saved_model模型,P4推理速度为“12.5ms/pic“
    • 用于转换Ascend格式模型的Frozen_PB模型,Ascend-310推理速度为“7.6ms/pic“

2.2. 训练参数说明

名称 默认值 类型 是否必填 是否可修改 描述
task_type image_classification_v2 string 适用场景。
model_name resnet_v1_50 string 模型名称。
do_train True bool 是否做训练,默认训练
do_eval_along_train True bool 是否边训练边验证,默认边训练边验证。
learning_rate_strategy 0.002 string 训练的初始学习率,训练过程采取早停(early_stop)和自动学习率下降。
batch_size 32 int 每步训练的图片数量(单卡)
eval_batch_size 32 int 每步验证的图片数量(单卡)
save_summary_steps 1 int 保存summary的频率(单位:步)。如果使用Ascend 910训练,会下沉整个epoch训练,每个epoch保存一次。
log_every_n_steps 1 int 打印日志的频率(单位:步)。如果使用Ascend 910训练,会下沉整个epoch训练,每个epoch打印一次。
data_format NHWC string 输入数据类型,NHWC表示channel在最后,NCHW表channel在最前,如果使用Ascend 910训练,此参数必须设置为NHWC。
label_smoothing 0.1 float 标签平滑系数,有助于提升精度。取值范围为0~1。
loss_scale 1024 float 混合精度下的损失自动缩放,一般都使用默认值1024。
rescale_train_batch_size_factor 1 int 自动调整训练batch_size,如果设置为10,则batch_size最大不会超过数据集总量的十分之一。
weight_decay_in_opt False bool 通过在loss中加入l2_loss实现正则项。
session_timeout 999999 int 单步训练的超时时间(单位:秒)。

2.3. 训练输出文件

训练完成后的输出文件如下

训练输出目录
  |- om
    |- model
      |- index
      |- customize_service_d310.py
  |- model
    |- variables
      |- variables.data-00000-of-00001
      |- variables.index
    |- customize_service.py
    |- index
    |- config.json
    |- saved_model.pb
  |- frozen_graph
    |- insert_op_conf.cfg
    |- model.pb
  |- checkpoint
  |- model.ckpt-xxx
  |- ...
  |- best_checkpoint
  |- best_model.ckpt-xxx
  |- ...
  |- events...
  |- graph.pbtxt

3. Ascend310推理

3.1. 模型转换参数配置

  • 转换模板: TF-FrozenGraph-To-Ascend-C32
  • 转换输入目录: 选择训练输出目录中的frozen_graph
  • 转换输出目录: 选择训练输出目录中的om/model
  • 输入张量形状: images:1,224,224,3
  • 输入数据格式: NHWC
  • 转换输出节点: logits:0

剩余的参数均使用默认值

3.2. 模型导入参数配置

  • 从模板中选择: ARM-Ascend模板
  • 模型目录: 选择训练输出目录中的om/model
  • 输入输出模式: 预置图像处理模式

4. GPU/CPU推理

待上线。

5. 案例指导

Ascend 910训练+Ascend 310推理,案例指导请参见:https://support.huaweicloud.com/bestpractice-modelarts/modelarts_10_0026.html

交付

华为云ModelArts

华北-北京一华北-北京四华北-乌兰察布一华东-上海一cn-east-4华南-广州西南-贵阳一

您可以在华为云ModelArts控制台直接使用资产,但无法下载资产

限制

公开

免费

无时长限制

版本

版本号
版本ID
发布时间
状态
版本说明
使用约束
18.0.0
11JgS5
2022-11-07 08:22
已完成
适配cann_5.1.0

若您怀疑合法知识产权遭受侵犯,可以通过此链接进行投诉与建议。