主要内容

部署浅神经网络函数

训练网络的部署函数和工具

这个函数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函数

genFunction(净,“路径”)获取神经网络和文件路径,并生成一个独立的MATLAB函数文件filename.m

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

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

这里训练一个静态网络并计算它的输出。

[x, t] = bodyfat_dataset;bodyfatNet =前馈网(10);bodyfatNet = train(bodyfatNet, x, t);y = bodyfatNet(x);

下面的代码生成、测试并显示具有与神经网络对象相同接口的MATLAB函数。

genFunction (bodyfatNet“bodyfatFcn”);y2 = bodyfatFcn(x);精确度2 = max(abs(y - y2))编辑bodyfatFcn

方法编译新函数MATLAB编译器用于共享/动态链接库的工具(需要许可证)世纪挑战集团

世纪挑战集团- w自由:libBodyfat- t链接:自由bodyfatFcn

下面的代码生成另一个版本的MATLAB函数,只支持矩阵参数(不支持单元格数组)。金宝app该函数已经过测试。函数生成一个mex -函数MATLAB编码器工具codegen(需要许可证),这也是测试。

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

这里训练一个动态网络并计算其输出。

[x,t] = maglev_dataset;maglevNet = narxnet(1:2,1:2,10);

然后生成MATLAB函数并进行测试。然后使用该函数创建共享/动态链接的库世纪挑战集团

genFunction (maglevNet“maglevFcn”);Accuracy2 = 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,:));将每个输入状态转换为矩阵[y3,xf1,xf2] = maglevFcn(x1,x2,xi1,xi2);accuracy3 = max(abs(cell2mat(y)-y3)) x1Type = code .typeof(double(0),[1 Inf]);输入1的编码器类型x2Type = code .typeof(double(0),[1 Inf]);输入的编码器类型xi1Type = code .typeof(double(0),[1 2]);输入1状态的编码器类型xi2Type = code .typeof(double(0),[1 2]);%编码器输入类型2个状态codegenmaglevFcn.m配置:墨西哥人- omaglevNetCodeGen...arg游戏{x1Type x2Type xi2Type[y4,xf1,xf2] = maglevNetCodeGen(x1,x2,xi1,xi2);Dynamic_codegen_accuracy = max(abs(cell2mat(y)-y4))

生成Simulin金宝appk图

有关模拟浅层神经网络和使用Simulink工具部署训练好的神经网络的信息,请参见金宝app部署浅神经网络Simulink图金宝app

相关的话题