最近由于项目需要,要将在matlab训练好的神经网络转换为动态链接库.dll文件,方便在VS下进行调用。网上关于matlab生成动态链接库的教程很多。我个人也写了一个,但是关于封装神经网络的资料几乎没有,经过多方尝试实现了神经网络的封装。本着分享的原则,整理如下。也方便自己日后学习使用。(其中关于打包动态链接库的教程请参考教程)
1.编写函数将事先生成的神经网络加载进工作区。如果使用的是matlab自带的神经网络模型进行训练,保存下来的结果是一个1*1的结构体,里面包含神经网络等几个字段。
2.调用sim函数,输出神经网络预测结果。函数的两个输入参数为神经网络和预测输入。
下面放上代码
。
// An example
function [result]=predict(pre)
s=load('result.mat');
net=s.results.net1;
result=sim(net,pre);
**
注意事项
**
1.找到matlab库函数中的sim函数的.m文件将其与要打包的.m文件放在一个文件夹下。具体sim文件位置以自己安装路径有关,我的是在E:\matlab2018a\toolbox\nnet\nnet\@network
2、为了方便打包之后在vs中调用,建议打开该sim.m文件,将函数的返回参数只保留Y,其他参数删除。否则在vs中调用时会出现不必要的麻烦。