当前位置:网站首页>Copy Siege Lion 5-minute online experience MindIR format model generation
Copy Siege Lion 5-minute online experience MindIR format model generation
2022-08-04 06:18:00 【language】
在线体验 MindIR 格式模型生成
*众所周知,人工智能能有今天的发展离不开数据、算力和算法.作为普通的Copy攻城狮,手头没有良好的硬件支撑AI的学习,焦头烂额,还好有她--ModelArts .ModelArts是华为云的一站式AI开发平台,其中有个「我的笔记本」功能,是即开即用、用于机器学习的在线集成开发环境,可以轻松的构建、训练、调试、部署机器学习算法与模型.关键是免费!免费!免费!
*
关于 MindIR
此次 MindSpore 第五期集训营的第一节课主要讲的就是 MindIR .MindIR是MindSpore提供的中间表达形式,可以帮助我们实现一次训练多处部署,实现端云互通.比如我们可以在Ascend AI处理器、GPU、CPU等不同平台上训练并导出MindIR文件,然后快速部署到手机端或者用MindSpore Serving服务等环境上,体验到MindSpore的全场景能力.MindIR的具体实现细节请阅读《AI框架中图层IR的分析》.因为,Copy攻城狮只关心如何应用:
接下来通过两个具体的在线案例了解一下 MindIR 格式的模型是如何生成的.
导出LeNet网络的MindIR格式模型
官方文档:保存模型
查看源码 | 下载notebook | Experience on the cloud |
---|---|---|
这是一个可以在 CPU 环境运行的案例,使用的是 LeNet 网络 和 MNIST 数据集.具体的实现本文不再赘述,总之这个案例详细介绍了 MindSpore 中数据处理、网络定义、模型训练、模型保存、模型验证等相关知识点.本文关注点在「导出MindIR格式文件」. 点击上边或者官方文档的 「Run in ModelArts」 就可跳转到华为云一站式AI开发平台,我们进入的其实是 ModelArts 的 「我的笔记本」功能--一个基于 JupyterLab 构建的在线集成开发环境,还可以快速切换不同环境平台.当前案例使用的是 GPU 环境,MindSpore 版本为 1.0.1 .根据文档并执行代码,我们很快就能实现一个 LeNet 网络并得到训练之后的模型.
目前导出 MINDIR 格式模型文件基于前置步骤生成的 CheckPoint 文件.官方文档建议使用.mindir作为MINDIR格式文件的后缀名.导出 MINDIR 格式文件的代码如下:
from mindspore.train.serialization import export, load_checkpoint, load_param_into_net
from mindspore import Tensor
import numpy as np
lenet = LeNet5()
# 返回模型的参数字典
param_dict = load_checkpoint("./models/ckpt/mindspore_save_model/lenet-1_1875.ckpt")
# 加载参数到网络
load_param_into_net(lenet, param_dict)
input = np.random.uniform(0.0, 1.0, size=[32, 1, 32, 32]).astype(np.float32)
# 以指定的名称和格式导出文件
export(lenet, Tensor(input), file_name='lenet-1_1875.mindir', file_format='MINDIR',)
导出完成之后,在当前目录下会生成一个MINDIR格式文件,如下图中名为lenet-1_1875.mindir
的文件.
当然如果您想将 LeNet 模型导出为不同格式的文件,建议您进行封装,Please refer to the specific practicemindspore/model_zoo/official/cv/lenet/export.py
训练ResNet50网络导出MindIR格式模型
官方文档:使用ResNet-50网络实现图像分类
查看源码 | 下载notebook | Experience on the cloud |
---|---|---|
有了上一次的在线体验,在进行训练ResNet50网络导出MindIR格式模型的时候,可谓“轻车熟路”,同样的点击「Run in ModelArts」开始我们的云端AI开发之旅.这次我们使用的是ResNet-50网络,CIFAR-10数据集,依旧是 MIndSpore 1.0.1 版本,不过是 GPU 环境的.
目前, ModelArts 中 「我的笔记本」要想使用 GPU 版本的 MIndSpore,好像暂时只有这个入口. 当然,这个案例中并没有实现将模型导出为 MindIR 格式,需要我们手动添加,唯一值得注意的是 MindSpore 1.0.1 和 MIndSpore 1.1.0 中 导出的方法「export」放在不同的命名空间下,1.1.0版本的引入方法是
from mindspore import Tensor, export, load_checkpoint, load_param_into_net
而 1.1.0版本中的引入方法是
from mindspore.train.serialization import export, load_checkpoint, load_param_into_net
因此,这里导出ResNet50网络 MindIR 格式的代码为:
from resnet import resnet50
from mindspore.train.serialization import export, load_checkpoint, load_param_into_net
from mindspore import Tensor
import numpy as np
resnet = resnet50(batch_size=32, num_classes=10)
# return a parameter dict for model
param_dict = load_checkpoint("./models/ckpt/mindspore_vision_application/train_resnet_cifar10-10_1562.ckpt")
# load the parameter into net
load_param_into_net(resnet, param_dict)
input = np.random.uniform(0.0, 1.0, size=[32, 3, 224, 224]).astype(np.float32)
export(resnet, Tensor(input), file_name='resnet_cifar10-10_1562.mindir', file_format='MINDIR')
不过这两个在线案例导出之后的 MindIR 格式,我还没来得及验证是否能正常使用.如果您知道快速验证的方法,请您分享与我,感谢大家多多指教!
边栏推荐
- 动手学深度学习__张量
- 【论文阅读】SPANET: SPATIAL PYRAMID ATTENTION NETWORK FOR ENHANCED IMAGE RECOGNITION
- Androd Day02
- 机器学习——分类问题对于文字标签的处理(特征工程)
- Vision Transformer 论文 + 详解( ViT )
- [Deep Learning 21 Days Learning Challenge] Memo: What does our neural network model look like? - detailed explanation of model.summary()
- MOOSE平台使用入门攻略——如何运行官方教程的例子
- Qt日常学习
- 基于BiGRU和GAN的数据生成方法
- YOLOV5 V6.1 详细训练方法
猜你喜欢
亚马逊云科技 Build On 2022 - AIot 第二季物联网专场实验心得
TensorFlow2 study notes: 8. tf.keras implements linear regression, Income dataset: years of education and income dataset
Data reading in yolov3 (1)
动手学深度学习_多层感知机
YOLOV5 V6.1 详细训练方法
动手学深度学习_线性回归
BatchNorm&&LayerNorm
【深度学习21天学习挑战赛】备忘篇:我们的神经网模型到底长啥样?——model.summary()详解
[CV-Learning] Linear Classifier (SVM Basics)
详解近端策略优化
随机推荐
深度学习理论 —— 初始化、参数调节
YOLOV4流程图(方便理解)
MNIST手写数字识别 —— 从二分类到十分类
【CV-Learning】图像分类
TensorFlow: tf.ConfigProto() and Session
深度学习,“粮草”先行--浅谈数据集获取之道
Attention Is All You Need(Transformer)
卷积神经网络入门详解
Briefly say Q-Q map; stats.probplot (QQ map)
【深度学习21天学习挑战赛】0、搭建学习环境
SQL注入详解
(TensorFlow) - detailed explanation of tf.variable_scope and tf.name_scope
read and study
[Deep Learning 21 Days Learning Challenge] Memo: What does our neural network model look like? - detailed explanation of model.summary()
The difference between oracle temporary table and pg temporary table
Vision Transformer 论文 + 详解( ViT )
【CV-Learning】目标检测&实例分割
TensorFlow2学习笔记:5、常用激活函数
MOOSE平台使用入门攻略——如何运行官方教程的例子
Introduction of linear regression 01 - API use cases