主要内容

加载预训练网络以生成代码

您可以为预先训练的卷积神经网络(CNN)生成代码。要向代码生成器提供网络,请加载一个SeriesNetwork(深度学习工具箱)DAGNetwork(深度学习工具箱)yolov2ObjectDetector(计算机视觉工具箱)ssdObjectDetector(计算机视觉工具箱),或dlnetwork(深度学习工具箱)来自培训的网络的对象。

通过使用加载网络coder.loadDeepLearningNetwork

您可以通过使用金宝appcoder.loadDeepLearningNetwork.您可以从mat -文件指定网络。mat -文件必须只包含要加载的网络。

例如,假设您创建了一个名为myNet通过使用trainNetwork(深度学习工具箱)功能。然后,您通过输入保存工作区保存.这将创建一个名为matlab.mat包含网络对象的。加载网络对象myNet,输入:

网= coder.loadDeepLearningNetwork (“matlab.mat”);

您还可以通过提供返回预先训练的函数的名称来指定网络SeriesNetworkDAGNetworkyolov2ObjectDetector,或ssdObjectDetector对象,如:

例如,通过输入:

网= coder.loadDeepLearningNetwork (“googlenet”);

前面列表中的深度学习工具箱™功能要求您安装该功能的支持包。金宝app看到普里德深度神经网络(深度学习工具箱)

指定用于代码生成的网络对象

如果使用使用的代码codegen或应用程序,通过使用将网络对象加载到您的入口点功能内coder.loadDeepLearningNetwork.例如:

函数= myNet_predict(中)% # codegen持续的mynet;如果isempty(mynet)mynet = coder.loaddeeplearningnetwork(“matlab.mat”);结束=预测(mynet,);

对于支持包功能可用的预先训练的网络,例如金宝appAlexNet.inceptionv3googlenet, 和resnet,可以直接指定支持包函数,例如金宝appmynet = googlenet

接下来,为入口点函数生成代码。例如:

cfg = coder.config (墨西哥人的);cfg。TargetLang =“c++”;cfg。DeepLearningConfig =编码器。DeepLearningConfig (“mkldnn”);codegenarg游戏{(224224 3,“单”)}配置cfgmyNet_predict

指定一个dlnetwork代码生成的对象

假设你有一个预先训练过的dlnetwork中的网络对象mynet.matMAT-file。为了预测这个网络的响应,在MATLAB中创建一个入口点函数®如代码所示。

函数a = myDLNet_predict(in) dlIn = dlarray(in)SSC的);持续的dlnet;如果isempty(dlnet) dlnet = code . loaddeeplearningnetwork (“mynet.mat”);结束dlA =预测(dlnet, dlIn);一个= extractdata (dlA);结束

在此示例中,输入和输出到myDLNet_predict是更简单的数据类型和dlarray对象在函数中创建。的extractdata(深度学习工具箱)的方法dlarray对象中返回的数据dlarray国防后勤局作为输出myDLNet_predict.输出一个具有与底层数据类型相同的数据类型国防后勤局.该入口设计具有以下优点:

  • 更容易与独立的代码生成工作流(如静态、动态库或可执行文件)集成。

  • 输出的数据格式extractdata函数具有相同的顺序('scbtu')的MATLAB环境和生成的代码。

  • 改进MEX工作流的性能。

  • 简化Simulink.金宝app®工作流使用MATLAB函数块,因为Simuli金宝appnk本身不支持金宝appdlarray对象。

接下来,为入口点函数生成代码。例如:

cfg = coder.config (“自由”);cfg。TargetLang =“c++”;cfg。DeepLearningConfig =编码器。DeepLearningConfig (“mkldnn”);codegenarg游戏{(224224 3,“单”)}配置cfgmyDLNet_predict

另请参阅

功能

对象

相关话题