这个函数genFunction
允许独立的MATLAB®用于训练浅神经网络的函数。生成的代码包含模拟神经网络所需的所有信息,包括设置、权重和偏差值、模块函数和计算。
生成的MATLAB函数可用于检查特定浅层神经网络执行的精确模拟计算,并使用各种MATLAB部署产品和工具使神经网络更容易用于许多目的。下载188bet金宝搏
这个函数genFunction
是由神经网络拟合,神经网络模式识别,神经网络聚类和神经网络时间序列应用程序。有关这些应用程序的信息,请参见用浅层神经网络拟合数据,用浅层神经网络分类模式,具有自组织映射的集群数据,浅神经网络时间序列预测与建模.
这些应用程序生成的综合脚本包括一个使用genFunction
.
这个函数genFunction
生成一个独立的MATLAB函数,用于模拟任何训练过的浅神经网络,并为部署做好准备。这可能对以下几个任务有用:
记录神经网络的输入-输出变换,作为人工重新实现网络的计算模板
使用MATLAB函数块来创建一个Simulink金宝app®块
使用MATLAB编译器™:
生成独立的可执行文件
生成Excel®插件
使用MATLAB编译器SDK™:
生成C / c++库
生成com组件
生成Java®组件
生成的。net组件
使用MATLAB编码器™:
生成C / c++代码
生成高效MEX-functions
genFunction(净,“路径”)
取一个神经网络和文件路径,生成一个独立的MATLAB函数文件filename.m
.
genFunction(…,“MatrixOnly”,“是的”)
重写默认的单元格/矩阵表示法,并生成只使用与之兼容的矩阵参数的函数MATLAB编码器工具。对于静态网络,矩阵列被解释为独立的样本。对于动态网络,矩阵列被解释为一系列的时间步长。默认值为“不”
.
genFunction(___,‘ShowLinks’,‘不’)
禁用显示链接到生成的帮助和源代码的默认行为。默认值是“是的”
.
这里训练一个静态网络并计算其输出。
[x, t] = bodyfat_dataset;bodyfatNet = feedforwardnet (10);bodyfatNet = train(bodyfatNet, x, t);y = bodyfatNet (x);
下面的代码生成、测试和显示一个MATLAB函数,该函数具有与神经网络对象相同的接口。
genFunction (bodyfatNet“bodyfatFcn”);y2 = bodyfatFcn (x);= max(abs(y - y2)bodyfatFcn
控件可以编译新函数MATLAB编译器共享/动态链接库的工具(需要许可)世纪挑战集团
.
世纪挑战集团- w自由:libBodyfat- t链接:自由bodyfatFcn
下一个代码生成另一个版本的MATLAB函数,它只支持矩阵参数(不支持单元格数组)。金宝app对该功能进行测试。然后使用它生成一个mex -函数MATLAB编码器工具codegen
(许可证要求),也进行了测试。
genFunction (bodyfatNet“bodyfatFcn”,“MatrixOnly”,“是的”);y3 = bodyfatFcn (x);x1Type = code .typeof(double(0), [13, Inf]); / /输出%输入1的编码器类型codegenbodyfatFcn.m配置:墨西哥人- obodyfatCodeGenarg游戏{x1Type}y4 = bodyfatCodeGen (x);精度= max(abs(y - y4))
这里训练一个动态网络并计算其输出。
[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))- w自由:libMaglev- t链接:自由maglevFcn
下面的代码生成了另一个版本的MATLAB函数,它只支持矩阵参数(不支持单元格数组)。金宝app对该功能进行测试。然后使用它生成一个mex -函数MATLAB编码器工具codegen
,这也经受了考验。
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]);%输入1的编码器类型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配置:墨西哥人- omaglevNetCodeGen...arg游戏{x1Type x2Type xi1Type xi2Type}[y4, xf1 xf2] = maglevNetCodeGen (x1, x2)(ξ1,ξ2));dynamic_codegen_accuracy = max (abs (cell2mat (y) y4))
有关模拟浅层神经网络和使用Simulink工具部署训练过的神经网络的信息,请参见金宝app部署浅层神经网络Simulink图金宝app.