发布模型

Linux Ascend GPU 模型发布 中级 高级

发布模型 - 图1

概述

MindSpore Hub是存放MindSpore官方或者第三方开发者提供的预训练模型的平台。它向应用开发者提供了简单易用的模型加载和微调APIs,使得用户可以基于预训练模型进行推理或者微调,并部署到自己的应用中。用户也可以将自己训练好的模型按照指定的步骤发布到MindSpore Hub中,以供其他用户进行下载和使用。

本教程以GoogleNet为例,对想要将模型发布到MindSpore Hub的模型开发者介绍了模型上传步骤。

发布模型到MindSpore Hub

用户可通过向hub仓提交PR的方式向MindSpore Hub发布模型。这里我们以GoogleNet为例,列出模型提交到MindSpore Hub的步骤。

  1. 将你的预训练模型托管在可以访问的存储位置。

  2. 参照模板,在你自己的代码仓中添加模型生成文件mindspore_hub_conf.py,文件放置的位置如下:

    1. googlenet
    2. ├── src
    3. ├── googlenet.py
    4. ├── script
    5. ├── run_train.sh
    6. ├── train.py
    7. ├── test.py
    8. ├── mindspore_hub_conf.py
  3. 参照模板,在hub/mshub_res/assets/mindspore/ascend/0.7文件夹下创建{model_name}_{model_version}_{dataset}.md文件,其中ascend为模型运行的硬件平台,0.7为MindSpore的版本号,hub/mshub_res的目录结构为:

    1. hub
    2. ├── mshub_res
    3. ├── assets
    4. ├── mindspore
    5. | ├── gpu
    6. | ├── 0.7
    7. | ├── ascend
    8. | ├── 0.7
    9. | ├── googlenet_v1_cifar10.md
    10. ├── tools
    11. | ├── md_validator.py
    12. | └── md_validator.py

    注意,{model_name}_{model_version}_{dataset}.md文件中需要补充如下所示的file-formatasset-linkasset-sha256信息,它们分别表示模型文件格式、模型存储位置(步骤1所得)和模型哈希值。

    1. file-format: ckpt
    2. asset-link: https://download.mindspore.cn/model_zoo/official/cv/googlenet/goolenet_ascend_0.2.0_cifar10_official_classification_20200713/googlenet.ckpt
    3. asset-sha256: 114e5acc31dad444fa8ed2aafa02ca34734419f602b9299f3b53013dfc71b0f7

    其中,MindSpore Hub支持的模型文件格式有:

    对于每个预训练模型,执行以下命令,用来获得.md文件asset-sha256处所需的哈希值,其中googlenet.ckpt是从步骤1的存储位置处下载并保存到tools文件夹的预训练模型,运行后输出的哈希值为114e5acc31dad444fa8ed2aafa02ca34734419f602b9299f3b53013dfc71b0f7

    1. cd /hub/mshub_res/tools
    2. python get_sha256.py ../googlenet.ckpt
  4. 使用hub/mshub_res/tools/md_validator.py在本地核对.md文件的格式,执行以下命令,输出结果为All Passed,表示.md文件的格式和内容均符合要求。

    1. python md_validator.py ../assets/mindspore/ascend/0.7/googlenet_v1_cifar10.md
  5. mindspore/hub仓创建PR,详细创建方式可以参考贡献者Wiki

一旦你的PR合入到mindspore/hub的master分支,你的模型将于24小时内在MindSpore Hub 网站上显示。有关模型上传的更多详细信息,请参考README