主要内容

coder.loadDeepLearningNetwork

加载深度学习网络模型

描述

= coder.loadDeepLearningNetwork (文件名加载预训练的深度学习SeriesNetwork(深度学习工具箱)DAGNetwork(深度学习工具箱)yolov2ObjectDetector(计算机视觉工具箱),或ssdObjectDetector(计算机视觉工具箱)对象保存在文件名MAT-file。文件名必须是一个有效的MATLAB文件上存在的MATLAB®路径包含单个SeriesNetworkDAGNetworkyolov2ObjectDetector,或ssdObjectDetector对象。mat文件必须只包含要加载的网络。

例子

= coder.loadDeepLearningNetwork (functionname调用返回预训练深度学习的函数SeriesNetworkDAGNetworkyolov2ObjectDetector,或ssdObjectDetector对象。functionname必须是存在于MATLAB路径上的函数名称,该路径返回一个SeriesNetworkDAGNetworkyolov2ObjectDetector,或ssdObjectDetector对象。

例子

= coder.loadDeepLearningNetwork (___network_name等于net = coder.loadDeepLearningNetwork(文件名)带有从网络生成的c++类的名称选项。network_name是保存在mat文件中或由函数指向的网络对象的描述性名称。网络名必须为a字符在c++中是有效标识符的类型。

从网络对象推理生成代码时使用此函数。这个函数从这个网络生成一个c++类。类名派生自mat文件名或函数名。

请注意

的输入参数coder.loadDeepLearningNetwork必须是编译时常数。

例子

全部折叠

的使用coder.loadDeepLearningNetwork函数来加载VGG-16串联网络,并为该网络生成c++代码。

获取包含预训练的mat文件VGG-16网络。

url =“//www.tatmou.com/金宝appsupportfiles/gpucoder/cnn_models/VGG/vgg16.mat”;websave (“vgg16.mat”url);

创建入口点函数myVGG16它使用coder.loadDeepLearningNetwork函数加载vgg16.mat变成执着mynetSeriesNetwork对象。

函数out = myVGG16(in)持续的mynet;如果isempty(mynet) mynet = coder.loadDeepLearningNetwork“vgg16.mat”“myVGGnet”);结束Out = predict(mynet,in);

持久对象避免在后续调用调用的函数时重构和重新加载网络对象预测方法。

预训练的输入层VGG-16网络接受大小的图像224年x224x3.使用以下代码行从图形文件读取输入图像并将其大小调整为224年x224

In = imread()“peppers.png”);In = imresize(In,[224,224]);

创建一个coder.config配置对象,用于生成MEX代码,并将目标语言设置为c++。在配置对象中设置DeepLearningConfigtargetlib作为“mkldnn”.的codegen函数必须确定MATLAB函数输入的大小、类和复杂度。使用arg游戏选项,以指定入口点函数的输入大小。使用配置选项以传递代码配置对象。

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

codegen命令将生成的所有文件放在codegen文件夹中。这个文件夹包含了入口点函数的c++代码myVGG16.cpp,包含卷积神经网络(CNN)的c++类定义的头文件和源文件,权重和偏差文件。

调用VGG-16预测输入图像,并显示前五个预测标签。

predict_scores = myVGG16_mex(in);[scores, index] = sort(predict_scores,“下”);net = coder.loadDeepLearningNetwork()“vgg16.mat”);classNames = net.Layers(end).Classes;disp(类名(indx (1:5)));
甜椒黄瓜杂货店橡实南瓜冬胡桃南瓜

的使用coder.loadDeepLearningNetwork函数来加载resnet50串行网络并生成CUDA®这个网络的代码。

创建入口点函数resnetFun它使用coder.loadDeepLearningNetwork函数调用深度学习工具箱™工具箱函数resnet50.这个函数返回一个预训练的ResNet-50网络。

函数out = resnetFun(in)持续的mynet;如果isempty(mynet) mynet = coder.loadDeepLearningNetwork“resnet50”“myresnet”);结束Out = predict(mynet,in);

持久对象避免在后续调用调用的函数时重构和重新加载网络对象预测方法。

预训练的输入层ResNet-50网络接受大小的图像224年x224x3.从图形文件中读取输入图像并将其大小调整为224年x224,使用以下代码行:

In = imread()“peppers.png”);In = imresize(In,[224,224]);

创建一个coder.gpuConfig配置对象,用于生成MEX代码,并将目标语言设置为c++。的codegen函数必须确定MATLAB函数输入的大小、类和复杂度。使用arg游戏选项指定入口点函数的输入大小配置选项以传递代码配置对象。

. cfg = code . gpuconfig (墨西哥人的);cfg。TargetLang =“c++”;cfg。DeepLearningConfig =编码器。DeepLearningConfig (“cudnn”);codegenarg游戏{(224224 3 uint8)}配置cfgresnetFun报告;

codegen命令将生成的所有文件放在codegen文件夹中。它包含了入口点函数的CUDA代码resnetFun.cu包含卷积神经网络(CNN)、权重和偏差文件的c++类定义的头文件和源文件。

输入参数

全部折叠

指定包含预训练的mat文件的名称SeriesNetworkDAGNetworkyolov2ObjectDetector,或ssdObjectDetector对象。

这个输入参数必须是编译时常数。

数据类型:字符串

指定返回预训练值的函数的名称SeriesNetworkDAGNetworkyolov2ObjectDetector,或ssdObjectDetector对象。

这个输入参数必须是编译时常数。

数据类型:字符串

保存在mat文件中的网络对象的描述性名称。它一定是。字符在c++中是有效标识符的类型。

这个输入参数必须是编译时常数。

数据类型:字符

输出参数

全部折叠

网络推理,返回为SeriesNetworkDAGNetworkyolov2ObjectDetector,或ssdObjectDetector对象。

限制

  • coder.loadDeepLearningNetwork不支持在多个网络中金宝app加载mat文件。

  • mat文件必须只包含要加载的网络。

扩展功能

C/ c++代码生成
使用MATLAB®Coder™生成C和c++代码。

GPU代码生成
使用GPU Coder™为NVIDIA®GPU生成CUDA®代码。

版本历史

在R2017b中引入