admin管理员组文章数量:1035888
MATLAB程序在设备端部署实例
背景介绍
MATLAB广泛应用于物理系统建模、测量测试、系统控制以及深度学习等,在工程实践中具有非常重要的地位,具体如图1所示。调研发现,科研人员能够编写各种matlab代码,通过建模仿真来更好的认识世界。近年来,随着物联网、智能硬件以及生成式AI等技术的发展,我们能否将设备采集的真实数据作为输入,让模拟仿真变得更加的真实(全真互联)。本推文对相关的内容进行归纳汇总,介绍如何将matlab代码部署到设备端,具体如下所示:
图1 MATLAB的应用场景
程序在设备端的部署
MATLAB属于付费软件,官方为了吸引消费者开放了丰富的Demo程序,提供了从算法设计到模型部署所需的全套开发工具,让设计人员能够在实际工程项目非常方便的使用该软件。其中,matlab在工程中部署的流程框架如图2所示:主要的方式有:1.通过matlab coder将程序转换为C、C++和CUDA®代码,将预测模型集成到嵌入式或边缘设备;2.通过matlab compiler SDK™将预测模型集成到内部开发的企业桌面应用或服务器应用,支持 C、C++、Java 或 Python 等多种语言;3.部署为微服务 API:将模型部署 RESTful API,以通过多种应用和语言进行调用。
图2 matlab代码的部署流程
环境搭建
所谓工欲善其事必先利其器,我们利用matlab coder将深度学习模型转化为C代码时,需要在电脑端安装必要的环境,主要包含有:
- On Windows®, code generation for deep learning networks with the codegen function requires MinGW® compiler.
- MATLAB Coder Interface for Deep Learning.
- Deep Learning Toolbox™.
图3 MinGW-w64环境搭建实例.
使用案例
我们在本实例中,采用save命令将DAGNetwork保存为.mat文件,后续通过coder.loadDeepLearningNetwork()实现模型加载,最后通过classify实现模型预测;整个过程中通过MinGW将AI模型转化为C代码(不依赖第三方库),所用的程序代码如下所示:
代码语言:javascript代码运行次数:0运行复制save('netTransfer.mat','netTransfer');
模型预测所需的函数:
代码语言:javascript代码运行次数:0运行复制function [YPred,probs] = yuche(image)%#codegen
persistent mynet;
if isempty(mynet)
mynet = coder.loadDeepLearningNetwork('netTransfer.mat', 'netTransfer');
end
[YPred,probs] = classify(mynet,image);
end
模型预测的实例及程序代码:
代码语言:javascript代码运行次数:0运行复制clear all;clc;close all;
%下面是输入参数的样例
lujing='C:\Temp\matlab\matlab\AI\face_recognition\MOV_1692_174.jpg';
I=imread(lujing);
image = imresize(I, [227 227]);
[YPred,probs] = yuche(image)
最后的结果如下图4所示:
图4 matlab coder工具箱代码转化实例及结果
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。原始发表:2024-04-01,如有侵权请联系 cloudcommunity@tencent 删除部署程序环境搭建模型matlabMATLAB程序在设备端部署实例
背景介绍
MATLAB广泛应用于物理系统建模、测量测试、系统控制以及深度学习等,在工程实践中具有非常重要的地位,具体如图1所示。调研发现,科研人员能够编写各种matlab代码,通过建模仿真来更好的认识世界。近年来,随着物联网、智能硬件以及生成式AI等技术的发展,我们能否将设备采集的真实数据作为输入,让模拟仿真变得更加的真实(全真互联)。本推文对相关的内容进行归纳汇总,介绍如何将matlab代码部署到设备端,具体如下所示:
图1 MATLAB的应用场景
程序在设备端的部署
MATLAB属于付费软件,官方为了吸引消费者开放了丰富的Demo程序,提供了从算法设计到模型部署所需的全套开发工具,让设计人员能够在实际工程项目非常方便的使用该软件。其中,matlab在工程中部署的流程框架如图2所示:主要的方式有:1.通过matlab coder将程序转换为C、C++和CUDA®代码,将预测模型集成到嵌入式或边缘设备;2.通过matlab compiler SDK™将预测模型集成到内部开发的企业桌面应用或服务器应用,支持 C、C++、Java 或 Python 等多种语言;3.部署为微服务 API:将模型部署 RESTful API,以通过多种应用和语言进行调用。
图2 matlab代码的部署流程
环境搭建
所谓工欲善其事必先利其器,我们利用matlab coder将深度学习模型转化为C代码时,需要在电脑端安装必要的环境,主要包含有:
- On Windows®, code generation for deep learning networks with the codegen function requires MinGW® compiler.
- MATLAB Coder Interface for Deep Learning.
- Deep Learning Toolbox™.
图3 MinGW-w64环境搭建实例.
使用案例
我们在本实例中,采用save命令将DAGNetwork保存为.mat文件,后续通过coder.loadDeepLearningNetwork()实现模型加载,最后通过classify实现模型预测;整个过程中通过MinGW将AI模型转化为C代码(不依赖第三方库),所用的程序代码如下所示:
代码语言:javascript代码运行次数:0运行复制save('netTransfer.mat','netTransfer');
模型预测所需的函数:
代码语言:javascript代码运行次数:0运行复制function [YPred,probs] = yuche(image)%#codegen
persistent mynet;
if isempty(mynet)
mynet = coder.loadDeepLearningNetwork('netTransfer.mat', 'netTransfer');
end
[YPred,probs] = classify(mynet,image);
end
模型预测的实例及程序代码:
代码语言:javascript代码运行次数:0运行复制clear all;clc;close all;
%下面是输入参数的样例
lujing='C:\Temp\matlab\matlab\AI\face_recognition\MOV_1692_174.jpg';
I=imread(lujing);
image = imresize(I, [227 227]);
[YPred,probs] = yuche(image)
最后的结果如下图4所示:
图4 matlab coder工具箱代码转化实例及结果
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。原始发表:2024-04-01,如有侵权请联系 cloudcommunity@tencent 删除部署程序环境搭建模型matlab本文标签: MATLAB程序在设备端部署实例
版权声明:本文标题:MATLAB程序在设备端部署实例 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://it.en369.cn/jiaocheng/1748218021a2270923.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论