在MATLAB中,我们可以如此构建一个神经网络
当然,input可以是多组数据组成的矩阵,也可以是一组数据组成的向量,如此便可得到预测值。
%使用用输入输出数据(inputData、outputData)建立网络,
%隐节点个数设为3.其中隐层、输出层的传递函数分别为tansig和purelin,使用trainlm方法训练。
net =newff(inputData,outputData,3,{'tansig','purelin'},'trainlm');
%设置一些常用参数
net.trainparam.goal =0.00001; %训练目标:均方误差低于0.0001
net.trainparam.show =400; %每训练400次展示一次结果
net.trainparam.epochs =15000; %最大训练次数:15000.
net.divideFcn = '';
[net,tr] =train(net,inputData,outputData);%调用matlab神经网络工具箱自带的train函数训练网络
其中,隐藏层节点是3,我选取较简单的输入层节点为2,输出层节点是 1来构建网络。
训练好网络后,可用sim函数来运行Simulink模型,可通过输入预测输出,例如:
input=[4000;20]
simout =sim(net,input); %调用matlab神经网络工具箱自带的sim函数得到网络的预测值
当然,input可以是多组数据组成的矩阵,也可以是一组数据组成的向量,如此便可得到预测值。
有的时候,我们需要提取已训练好的神经网络,我们可以把它的权值,阈值导出,如下代码,可提取出权值阈值的值。
w12 = net.iw{1,1} %第1层(输入层)到第2层(隐层)的权值
b2 = net.b{1} %第2层(