文档首页 > > AI工程师用户指南> 管理模型> 压缩和转换模型> 压缩和转换模型操作

压缩和转换模型操作

分享
更新时间: 2020/01/10 GMT+08:00

针对您在ModelArts或者本地构建的模型,为获得更高的算力,希望将模型应用于Ascend芯片、ARM或GPU上,此时,您需要将已有模型压缩/转换成相应的格式后,再应用至不同的芯片类型。

ModelArts提供了模型转换功能,即将已有的模型转换成所需格式,以便应用于算力和性能更高的芯片上。

模型转换主要应用场景如下所示:

  • 使用Caffe(.caffemodel格式)或者Tensorflow框架(frozen_graph或“saved_model”格式)训练的模型,使用转换功能可转换成om格式,转换后的模型可昇腾(Ascend)芯片上部署运行;
  • 使用Tensorflow框架训练模型(frozen_graph或“saved_model”格式), 使用转换功能可以将模型转换量化成tflite格式模型,转换后的模型可以在ARM上部署运行;
  • 使用Tensorflow框架训练模型(frozen_graph或“saved_model”格式), 使用转换功能可以将模型转换量化成tensorRT格式模型, 转换后的模型可以在nvidia p4 GPU上部署运行。

背景信息

  • 模型转换当前只支持三种芯片类型,分别为:Ascend、ARM、GPU。
  • 模型转换当前仅支持Caffe和TensorFlow框架训练输出的模型。
  • ModelArts提供了转换模板供用户选择,只能选择对应模板进行转换,支持的模板描述,请参见转换模板
  • 现阶段由于tflite和tensorRT支持的算子和量化算子有限,可能存在部分模型转换失败的情况。如果出现转换失败,可以将页面的日志框滑到最后或者去转换输出目录下查看错误日志。
  • 压缩/转换任务指定的OBS路径,需确保OBS目录与ModelArts在同一区域。

使用限制

针对使用“预置算法”(如TensorFlow引擎的“resnet_v1_50”算法)训练输出的模型,不支持转换操作。

创建模型压缩/转换任务

  1. 登录ModelArts管理控制台,在左侧导航栏中选择“模型管理 > 压缩/转换”,进入模型转换列表页面。
  2. 单击左上角的“创建任务”,进入任务创建任务页面。
  3. “创建任务”页面,参考表1,填写相关信息。
    表1 参数说明

    参数

    说明

    名称

    转换任务的名称。

    描述

    转换任务的简要描述。

    转换模板

    ModelArts提供了一系列的模板,定义转换功能以及转换过程中所需的参数。

    当前支持的转换模板详细描述请参见转换模板。您可以从界面的模板卡片列表中选择所需模板。您也可以通过右侧搜索框输入关键词搜索模板,或者基于“芯片类型”“框架类型”“模型文件格式”三个维度筛选所需模板。

    • “芯片类型”:ModelArts转换模板支持三种芯片类型,分别为Ascend、ARM、GPU。
    • “框架类型”:转换模板基于不同的框架,生成不同格式的模型。目前支持Tensorflow和Caffe两种框架类型。
    • “模型文件格式”:下拉列表罗列当前支持的模型文件格式,通过模型文件格式选择。目前支持“caffemodel”“frozen_gragh”“tf_serving”文件格式。

    转换输入目录

    用于转换的模型所在目录,此目录必须为OBS目录,且模型文件的目录需符合ModelArts规范,详情请参见模型输入目录规范

    转换输出目录

    模型转换完成后,根据此参数设置的目录存储模型。输出目录需符合ModelArts规范要求,详情请参见模型输出目录说明

    高级选项

    针对不同的转换模板,ModelArts提供了更多的选项设置,例如量化精度,方便您可以对模型转换任务进行更高阶的设置。

    不同的转换模板,其对应的高级选项支持的参数不同,每个模板支持的详细参数,请参见转换模板

    图1 创建模型压缩/转换任务
  4. 任务信息填写完成后,单击右下角“立即创建”

    创建完成后,系统自动跳转至“模型压缩/转换列表”中。刚创建的转换任务将呈现在界面中,其“任务状态”“初始化”。任务执行过程预计需要几分钟到十几分钟不等,请耐心等待,当“任务状态”变为“成功”时,表示任务运行完成并且模型转换成功。

    如果“任务状态”变为“失败”,建议单击任务名称进入详情页面,查看日志信息,根据日志信息调整任务的相关参数并创建新的转换任务。

删除压缩/转换任务

针对运行结束的任务,如果不需要再使用,您可以删除转换任务。其中,“运行中”“初始化”状态中的任务不支持删除操作。

任务删除后,将无法恢复,请谨慎操作。

  • 删除单个

    “模型压缩/转换列表”中,针对需要删除的单个任务,您可以在此任务所在行,单击操作列的“删除”,完成删除操作。

  • 批量删除:

    “模型压缩/转换列表”中,勾选多个待删除的任务,然后单击左上角“删除”,完成批量任务的删除操作。

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区