主要内容

coder.loadDeepLearningNetwork

加载深度学习网络模型

描述

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

例子

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

例子

= coder.loadDeepLearningNetwork (___network_name是一样的净= coder.loadDeepLearningNetwork(文件名)使用选项来命名从网络生成的c++类。network_name是对保存在mat -文件中或由函数指向的网络对象的描述性名称。网络名称必须为字符类型,它是c++中的有效标识符。

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

例子

全部折叠

的使用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对象。

函数= myVGG16(中)持续的mynet;如果isempty(mynet) mynet = code . loaddeeplearningnetwork (“vgg16.mat”“myVGGnet”);结束=预测(mynet,);

对象的后续调用过程中,持久对象避免重新构造和重新加载网络对象预测方法的输入。

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

在= imread (“peppers.png”);在= imresize(在[224224]);

创建一个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对输入图像进行预测,并显示预测的前5个标签。

predict_scores = myVGG16_mex(的);[分数,indx] =排序(predict_scores“下”);网= coder.loadDeepLearningNetwork (“vgg16.mat”);一会= net.Layers . class(结束);disp(类名(indx (1:5)));
甜椒黄瓜杂货店,橡子南瓜,冬南瓜

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

创建一个入口点函数resnetFun使用coder.loadDeepLearningNetwork函数调用Deep Learning Toolbox™工具箱函数resnet50.这个函数返回一个预先训练过的ResNet-50网络。

函数= resnetFun(中)持续的mynet;如果isempty(mynet) mynet = code . loaddeeplearningnetwork (“resnet50”“myresnet”);结束=预测(mynet,);

对象的后续调用过程中,持久对象避免重新构造和重新加载网络对象预测方法的输入。

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

在= imread (“peppers.png”);在= imresize(在[224224]);

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

cfg = coder.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不支持多网络加载m金宝appat文件。

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

扩展功能

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

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

介绍了R2017b