当前位置:网站首页>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 格式,我还没来得及验证是否能正常使用.如果您知道快速验证的方法,请您分享与我,感谢大家多多指教!
边栏推荐
- 如何成长为高级工程师?
- Copy攻城狮的年度之“战”|回顾2020
- The pipeline mechanism in sklearn
- fuser 使用—— YOLOV5内存溢出——kill nvidai-smi 无pid 的 GPU 进程
- PCL窗口操作
- 软著撰写注意事项
- (TensorFlow) - detailed explanation of tf.variable_scope and tf.name_scope
- Deep Adversarial Decomposition: A Unified Framework for Separating Superimposed Images
- 机器学习——分类问题对于文字标签的处理(特征工程)
- TypeError: load() missing 1 required positional argument: ‘Loader‘
猜你喜欢
度量学习(Metric learning)—— 基于分类损失函数(softmax、交叉熵、cosface、arcface)
fuser 使用—— YOLOV5内存溢出——kill nvidai-smi 无pid 的 GPU 进程
MNIST手写数字识别 —— Lenet-5首个商用级别卷积神经网络
MFC读取点云,只能正常显示第一个,显示后面时报错
DeblurGAN-v2: Deblurring (Orders-of-Magnitude) Faster and Better 图像去模糊
[CV-Learning] Convolutional Neural Network Preliminary Knowledge
基于BiGRU和GAN的数据生成方法
Transformer
深度学习理论 —— 初始化、参数调节
【CV-Learning】图像分类
随机推荐
The use of the attribute of the use of the animation and ButterKnife
Data reading in yolov3 (1)
【CV-Learning】Convolutional Neural Network
中国联通、欧莱雅和钉钉都在争相打造的秘密武器?虚拟IP未来还有怎样的可能
(导航页)OpenStack-M版-双节点手工搭建-附B站视频
MNIST手写数字识别 —— Lenet-5首个商用级别卷积神经网络
周志华机器学习
read and study
Thoroughly understand box plot analysis
如何成长为高级工程师?
多层LSTM
YOLOV4流程图(方便理解)
TensorRT 5 初步认识
Lee‘s way of Deep Learning 深度学习笔记
Simple and clear, the three paradigms of database design
[CV-Learning] Convolutional Neural Network Preliminary Knowledge
JPEG2jpg
动手学深度学习_卷积神经网络CNN
TensorFlow2学习笔记:5、常用激活函数
yolov3 data reading (2)