主要内容

genFunction

生成MATLAB函数模拟浅神经网络

描述

此函数生成MATLAB®用于模拟浅神经网络的函数。genFunction不支持深度学习网络万博1manbetx,如卷积网络和LSTM网络。有关深度学习的代码生成的更多信息,请参见深度学习代码生成

例子

genFunction (路径名生成一个完整的独立的MATLAB函数来模拟一个神经网络,包括所有的设置,权重和偏置值,模块函数和计算在一个文件中。结果是一个独立的MATLAB函数文件。您也可以使用此函数MATLAB编译器™MATLAB编码器™工具。

例子

genFunction (___“MatrixOnly”,“是的”)覆盖默认的单元格/矩阵表示法,而是生成一个只使用与MATLAB编码器工具兼容的矩阵参数的函数。对于静态网络,矩阵列被解释为独立样本。对于动态网络,矩阵列被解释为一系列的时间步骤。默认值是“不”

genFunction (___、“ShowLinks”、“不”)禁用显示指向生成的帮助和源代码的链接的默认行为。默认值是“是的”

例子

全部折叠

这个例子展示了如何从一个静态神经网络创建一个MATLAB函数和一个mex函数。

首先,训练一个静态网络,并为训练数据计算它的输出。

[x, t] = bodyfat_dataset;bodyfatNet = feedforwardnet (10);bodyfatNet =火车(bodyfatNet x, t);y = bodyfatNet (x);

接下来,生成并测试一个MATLAB函数。然后,新函数被编译为一个共享的/动态链接的库世纪挑战集团

genFunction (bodyfatNet“bodyfatFcn”);y2 = bodyfatFcn (x);精度= max(abs(y-y2)) MCC- w自由:libBodyfat- t链接:自由bodyfatFcn

接下来,生成仅支持矩阵参数(不支持单元格数组)的MATLAB函数的另一个版本,并测试该函数。万博1manbetx使用MATLAB编码器工具codegen生成一个mex -函数,该函数也经过测试。

genFunction (bodyfatNet“bodyfatFcn”“MatrixOnly”“是的”);y3 = bodyfatFcn (x);accuracy3 = max(abs(y-y3)) x1Type = code .typeof(double(0),[13 Inf]);输入的编码器类型codegenbodyfatFcn.m配置:墨西哥人- obodyfatCodeGenarg游戏{x1Type}y4 = bodyfatodeGen (x);accuracy4 = max (abs (y-y4))

这个例子展示了如何从一个动态神经网络创建一个MATLAB函数和一个mex函数。

首先,训练一个动态网络,并计算出训练数据的输出。

[x, t] = maglev_dataset;maglevNet = narxnet (1:2, 1:2, 10);[X, Xi,人工智能,T] = preparets (maglevNet, X, {}, T);maglevNet =火车(maglevNet X, T, Xi, Ai);[y, xf,房颤]= maglevNet (X, Xi, Ai);

接下来,生成并测试一个MATLAB函数。使用这个函数创建一个共享的/动态链接的库世纪挑战集团

genFunction (maglevNet“maglevFcn”);(y2、xf af) = maglevFcn (X, Xi, Ai);准确= max(abs(cell2mat(y)-cell2mat(y2))) MCC- w自由:libMaglev- t链接:自由maglevFcn

接下来,生成仅支持矩阵参数(不支持单元格数组)的MATLAB函数的另一个版本,并测试该函数。万博1manbetx使用MATLAB编码器工具codegen生成一个mex -函数,该函数也经过测试。

genFunction (maglevNet“maglevFcn”“MatrixOnly”“是的”);: x1 = cell2mat (X (1));%将每个输入转换为矩阵x2 = cell2mat (X (2:));ξ1 = cell2mat(ξ(1:));%将每个输入状态转换为矩阵ξ2)= cell2mat(ξ(2:));[y3, xf1 xf2] = maglevFcn (x1, x2)(ξ1,ξ2));accuracy3 = max(abs(cell2mat(y)-y3)) x1Type = code .typeof(double(0),[1 Inf]);输入的编码器类型x2Type = code .typeof(double(0),[1 Inf]);%编码器类型输入2xi1Type = code .typeof(double(0),[1 2]);%编码器类型输入1状态xi2Type = code .typeof(double(0),[1 2]);%编码器类型输入2个状态codegenmaglevFcn.m配置:墨西哥人- omaglevNetCodeGenarg游戏{x1Type x2Type xi1Type xi2Type}[y4, xf1 xf2] = maglevNetCodeGen (x1, x2)(ξ1,ξ2));dynamic_codegen_accuracy = max (abs (cell2mat (y) y4))

输入参数

全部折叠

神经网络,指定为网络对象。

例子:网= feedforwardnet (10);

生成的函数文件的位置和名称,指定为字符串。如果没有指定文件扩展名00,它会自动追加。如果未指定文件的路径,则默认位置为当前工作文件夹。

例子:“myFcn.m”

数据类型:字符

扩展功能

另请参阅

介绍了R2013b