首页 > 其他分享 >昇思MindSpore进阶教程--模型推理总览

昇思MindSpore进阶教程--模型推理总览

时间:2024-10-12 20:18:11浏览次数:8  
标签:进阶 训练 MindIR -- 模型 model 总览 推理 MindSpore

大家好,我是刘明,明志科技创始人,华为昇思MindSpore布道师。
技术上主攻前端开发、鸿蒙开发和AI算法研究。
努力为大家带来持续的技术分享,如果你也喜欢我的文章,就点个关注吧

MindSpore可以基于训练好的模型,在不同的硬件平台上执行推理任务。

Atlas 200/300/500推理产品是面向边缘场景的高能效高集成度AI处理器,支持对MindIR格式模型进行推理。

MindIR格式可由MindSpore CPU、GPU、Atlas训练系列产品导出,可运行在GPU、Atlas训练系列产品、Atlas 200/300/500推理产品上,推理前不需要手动执行模型转换,推理时需要安装MindSpore Lite,调用MindSpore Lite C++ API进行推理。

模型文件

MindSpore支持保存两种类型的数据:训练参数和网络模型(模型中包含参数信息)。

  • 训练参数指的是Checkpoint格式文件。

  • 网络模型包括MindIR和ONNX两种格式文件。

下面介绍一下这几种格式的基本概念及其应用场景。

  • Checkpoint

采用了Protocol Buffers格式,存储了网络中所有的参数值。

一般用于训练任务中断后恢复训练,或训练后的微调(Fine Tune)任务。

  • MindIR

全称MindSpore IR,是MindSpore的一种基于图表示的函数式IR,定义了可扩展的图结构以及算子的IR表示。

它消除了不同后端的模型差异,一般用于跨硬件平台执行推理任务。

  • ONNX

全称Open Neural Network Exchange,是一种针对机器学习模型的通用表达。

一般用于不同框架间的模型迁移或在推理引擎(TensorRT)上使用。

目前支持导出的模型有:Resnet50、YOLOv3_darknet53、YOLOv4、BERT。可以在ONNX Runtime上使用。

通过昇腾ACT工具实现在昇腾上的推理执行。

执行推理

按照使用环境的不同,推理可以分为以下两种方式。

  • 本机推理

通过加载网络训练产生的Checkpoint文件,调用model.predict接口进行推理验证。

  • 跨平台推理

使用网络定义和Checkpoint文件,调用export接口导出模型文件,在不同平台执行推理,目前支持导出MindIR和ONNX(仅支持Ascend AI处理器)模型,具体操作可查看保存模型。

MindIR介绍

MindSpore通过统一IR定义了网络的逻辑结构和算子的属性,将MindIR格式的模型文件与硬件平台解耦,实现一次训练多次部署。

  1. 基本介绍

MindIR作为MindSpore的统一模型文件,同时存储了网络结构和权重参数值。同时支持部署到云端Serving和MindSpore Lite平台执行推理任务。

同一个MindIR文件支持多种硬件形态的部署:

  • 云端Serving部署推理:MindSpore训练生成MindIR模型文件后,可直接发给MindSpore Serving加载,执行推理任务,而无需额外的模型转化,做到Ascend、GPU、CPU等多硬件的模型统一。

  • 使用MindSpore Lite推理部署:MindIR模型可直接使用Lite进行部署。支持在Ascend、英伟达GPU、CPU等云侧服务器上部署,同时也支持在手机等资源受限的端侧硬件上部署。

  1. 使用场景

先使用网络定义和Checkpoint文件导出MindIR模型文件,再根据不同需求执行推理任务,如基于MindSpore Serving部署推理服务、Lite推理。

model.eval模型验证

首先构建模型,然后使用mindspore模块的load_checkpoint和load_param_into_net从本地加载模型与参数,传入验证数据集后即可进行模型推理,验证数据集的处理方式与训练数据集相同。

network = LeNet5(cfg.num_classes)
net_loss = nn.SoftmaxCrossEntropyWithLogits(sparse=True, reduction="mean")
model = Model(network, net_loss, metrics={"Accuracy": Accuracy()})

print("============== Starting Testing ==============")
param_dict = load_checkpoint(args.ckpt_path)
load_param_into_net(network, param_dict)
dataset = create_dataset(os.path.join(args.data_path, "test"),
                            cfg.batch_size,)
acc = model.eval(dataset, dataset_sink_mode=args.dataset_sink_mode)
print("============== {} ==============".format(acc))

其中,
model.eval为模型验证接口,对应接口说明mindspore.train.Model.eval。

使用model.predict接口进行推理操作

model.predict(input_data)

其中,model.predict为推理接口,对应接口说明mindspore.train.Model.predict。

标签:进阶,训练,MindIR,--,模型,model,总览,推理,MindSpore
From: https://blog.csdn.net/weixin_42553583/article/details/142817229

相关文章

  • 读取bdict格式文件并转化为txt
    bdict格式是百度输入法的词库文件,那么怎么看里面的内容呢?这就需要用到bdict到txt的转化。下载:百度输入法-词库列表-餐饮比如下载“菜名大全”文件名:dict_file_734_20111227170031_1.0.0.bdict文件大小134924字节转换代码参考这篇文档:【搜狗&百度词库】.bdict文件与.sce......
  • 最长回文子串:动态规划,中心扩展
    给你一个字符串s,找到s中最长的 回文 子串。 示例1:输入:s="babad"输出:"bab"解释:"aba"同样是符合题意的答案。示例2:输入:s="cbbd"输出:"bb"提示:1s 仅由数字和英文字母组成动态规划classSolution(object):deflongestPalindrome(self,s):n=......
  • 外链建设对搜索引擎优化的作用
    在搜索引擎优化(SEO)中,外链建设是一个重要的环节。外链,也称为反向链接,是指其他网站链接到你的网站。本文将探讨外链建设对搜索引擎优化的作用,以及如何有效地进行外链建设。1.提高网站权威性高质量的外链可以提高你网站的权威性。当权威网站链接到你的网站时,搜索引擎会认为你的......
  • 多校A层冲刺NOIP2024模拟赛05
    好数(number没啥好说的直接\(O(n^2)\)枚举即可。点击查看代码#include<bits/stdc++.h>usingnamespacestd;constintN=2e6+107;constintd=2e5;intn,a[N],sum[N];intread(){ intf=1,s=0;charc=getchar(); while(c<'0'||c>'9'){if(c==�......
  • Git Large File Storage
    GitLargeFileStoragekeywords:git大文件官网:https://git-lfs.com/github地址:https://github.com/git-lfs/git-lfsGitLFSisacommandlineextensionandspecificationformanaginglargefileswithGit.TheclientiswritteninGo,withpre-compiledbinar......
  • Nacos服务注册与发现的原理
    大致流程每个服务都会有一个nacosclient,它用来和nacosserver打交道用来具体的服务注册查询等操作,服务提供者在启动的时候会向nacosserver注册自己,服务消费者在启动的时候订阅nacosserver上的服务提供者。在大型微服务项目中,服务提供者的数量会非常多,为了管理这些服务就引......
  • ubuntu 由于插拔移动硬盘导致无法挂载
    如果之前可以使用,但拔出后再连接就无法挂载了,可以尝试以下步骤:检查硬盘状态:运行sudofdisk-l或lsblk命令,确认系统是否识别到了硬盘。文件系统检查:如果是NTFS格式,可以使用ntfsfix来修复。首先,确保安装了ntfs-3g:sudoapt-getinstallntfs-3g然后运行:sudontfs......
  • draw 使用 基本流程图介绍
      https://www.cnblogs.com/youjianschool/p/14113383.html基本流程图介绍 一、什么是流程图流程图概念:流程图是一种用规定的图形、指向线及文字说明来准确、直观地表示算法的图形。二、为什么要画流程图那么,流程有哪些作用呢?我们为什么要画流程图呢?首先,流程图作为......
  • 企业做额数据安全有哪些好处
    维护数据安全对企业有以下几个好处:保护企业信誉:数据安全的维护可以防止数据泄露、丢失或被篡改,这有助于保护企业的声誉和信誉。如果客户或合作伙伴的数据在企业内部遭到泄露或滥用,会给企业带来严重的负面影响。遵守法律法规要求:在许多国家和地区,法律和法规要求企业保护客......
  • 电脑文件夹怎么加密
    要加密电脑文件夹,您可以使用以下方法之一:使用操作系统提供的加密功能:大多数操作系统(如Windows和Mac)都提供了文件夹加密的功能。您可以在文件夹的属性或选项中找到这个选项。通过设置密码,您可以保护文件夹中的文件免受未经授权的访问。使用第三方加密软件:除了操作系统提供......