主要内容

coder.DeepLearningConfig

创建深度学习代码生成配置对象

说明

deepLearningCfg = coder.DeepLearningConfig(TargetLibrary = targetlib) 创建一个包含库特定参数的深度学习配置对象,codegen 使用该对象为深度神经网络生成代码。将此深度学习配置对象分配给使用 coder.config 创建的代码配置对象的 DeepLearningConfig 属性。使用 -config 选项将代码配置对象传递给 codegen 函数。

示例

示例

全部折叠

ResNet-50 串行网络设置代码配置参数并生成 C++ 代码。生成的代码不依赖第三方深度学习库。

创建一个入口函数 resnet_predict,该入口函数使用 imagePretrainedNetwork 函数加载包含 ResNet-50 网络的 dlnetwork 对象。有关详细信息,请参阅 Code Generation for dlarray

function out = resnet_predict(in)

dlIn = dlarray(in, 'SSCB');
persistent dlnet;
if isempty(dlnet)
    dlnet = imagePretrainedNetwork('resnet50');
end

dlOut = predict(dlnet, dlIn);
out = extractdata(dlOut);

该持久性对象可避免在后续调用函数以调用输入的 predict 方法时重新构造和重新加载网络对象。

预训练的 ResNet-50 网络的输入层接受大小为 224×224×3 的图像。要从图形文件中读取一个输入图像并将其大小调整为 224×224,请使用以下代码行:

in = imread('peppers.png');
in = imresize(in,[224,224]);

为 MEX 代码生成创建一个 coder.config 配置对象,并将目标语言设置为 C++。在配置对象上,将 DeepLearningConfigtargetlib 设置为 'none'。使用 codegen 函数的 -config 选项来传递此代码配置对象。codegen 函数必须确定 MATLAB® 函数输入的大小、类和复/实性。使用 -args 选项指定入口函数的输入大小。

cfg = coder.config('mex');
cfg.TargetLang = 'C++';
cfg.DeepLearningConfig = coder.DeepLearningConfig(TargetLibrary = 'none'); 
codegen -args {ones(224,224,3,'single')} -config cfg resnet_predict;

codegen 命令将所有生成的文件放在 codegen 文件夹中。该文件夹包含入口函数 resnet_predict.cpp 的 C++ 代码、包含神经网络的 C++ 类定义的头文件和源文件、权重以及偏置文件。

输入参数

全部折叠

深度学习代码生成的目标库,指定为下表中的值之一。

描述
'none'

用于生成不使用任何第三方库的代码。

'arm-compute'

用于生成使用 ARM® Compute Library 的代码。

'mkldnn'

用于生成使用 Intel® Math Kernel Library for Deep Neural Networks (Intel MKL-DNN) 的代码。

'cmsis-nn'

通用微控制器软件接口标准 - 神经网络 (CMSIS-NN) 库。

需要 MATLAB Coder™ Interface for Deep Learning

'cudnn'

用于生成使用 CUDA® 深度神经网络库 (cuDNN) 的代码。

此选项需要 GPU Coder™。

'tensorrt'

用于生成使用 NVIDIA® TensorRT(高性能深度学习推断优化器和运行时库)的代码。

此选项需要 GPU Coder。

输出参量

全部折叠

基于在输入参量中指定的目标库的配置对象。此对象包含在代码生成期间使用的库特定参数。

目标库深度学习配置对象
'none'创建一个 DeepLearningCodeConfig 配置对象。
'arm-compute'创建一个 ARMNEONConfig 配置对象。
'mkldnn'创建一个 MklDNNConfig 配置对象。
'cmsis-nn创建一个 CMSISNNConfig 配置对象。
'cudnn'创建一个 CuDNNConfig 配置对象。
'tensorrt'创建一个 TensorRTConfig 配置对象。

版本历史记录

在 R2018b 中推出