主要内容

为代码生成加载预训练的网络

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

通过使用加载网络coder.loadDeepLearningNetwork

可以从任何支持代码生成的网络中加载网络对象金宝appcoder.loadDeepLearningNetwork.您可以从mat文件指定网络。mat文件必须只包含要加载的网络。

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

net = code . loaddeeplearningnetwork (“matlab.mat”);

还可以通过提供不接受输入参数并返回预训练的函数名来指定网络SeriesNetworkDAGNetworkyolov2ObjectDetector,或ssdObjectDetector对象,例如:

例如,通过输入以下命令加载一个网络对象:

net = code . loaddeeplearningnetwork (“googlenet”);

前面列表中的“深度学习工具箱™”函数要求您为该函数安装支持包。金宝app看到预训练的深度神经网络(深度学习工具箱)

为代码生成指定一个网络对象

如果您通过使用codegen或应用程序,在你的入口点函数内加载网络对象通过使用coder.loadDeepLearningNetwork.例如:

函数out = myNet_predict(in)% # codegen持续的mynet;如果mynet = code . loaddeeplearningnetwork (mynet)“matlab.mat”);结束Out = predict(mynet,in);

对于预先训练的网络,可用作支持包功能,如金宝appalexnetinceptionv3googlenet,resnet时,可直接指定支持包功能,如金宝appMynet = googlenet

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

cfg = code . gpuconfig (墨西哥人的);cfg。TargetLang =“c++”;cfg。DeepLearningConfig =编码器。DeepLearningConfig (“cudnn”);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 = predict(dlnet, dlIn);a = extractdata(dlA);结束

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

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

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

  • 改进MEX工作流程的性能。

  • 简化模型金宝app®工作流使用MATLAB函数作为Simulink金宝app本身不支持的金宝appdlarray对象。

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

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

另请参阅

功能

对象

相关的话题