部署浅神经网络函数
训练网络的部署函数和工具
这个函数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.