PDA

查看完整版本 : [问题] 求指导!!BP神经网络的语法错误


kangta283
2012-05-16, 16:51
我的输入层有30个神经元,选取5个训练样本(我知道5个不够,只是先拿5个来说明程序)所以输入矩阵P为一个5*30的矩阵
输出神经元为1个,隐蔽层只有一层,有6个结点,在网上找了现有的程序,可是好像
构造神经网络的时候就错了,怎么改啊,急死我了,哪个大神指导一下,感激不尽~


      close all
clear
echo on
clc
pause

%P为输入矩阵
P=[5 4 4 3 4 4 4 4 5 5 5 5 4 5 4 4 4 5 5 4 3 3 3 2 4 4 5 4 4 3
4 3 4 4 4 4 5 3 4 5 5 5 4 5 3 5 5 5 5 4 4 5 5 5 4 3 3 3 2 3
4 4 4 3 4 5 3 4 4 4 3 2 2 2 4 3 3 3 4 4 4 4 3 3 3 3 2 3 4 3
4 5 3 3 4 4 4 3 3 4 4 3 4 2 5 2 3 4 3 4 3 4 5 2 4 3 2 4 4 3
        3 5 3 3 4 4 5 3 5 4 3 3 4 2 5 2 3 4 4 4 3 4 5 2 4 3 2 4 4 3];
%T为理想输出
T=[3.336;3.363;3.325;3.969;3.711;3.843;4.340;3.246;3.540 ;3.504];
pause;
clc
%创建一个新的前向神经网络
net=newff(P,[6,1],{'tansig','purelin'});

%当前输入层权值和阈值
inputWeights=net.IW{1,1} ;
inputbias=net.b{1};
%当前网络层权值和阈值
layerWeights=net.LW{2,1};
layerbias=net.b{2} ;
pause
clc
%设置训练参数
net.trainParam.show = 10;
net.trainParam.lr = 0.05;
net.trainParam.mc = 0.9;
net.trainParam.epochs = 1000;
net.trainParam.goal = 1e-3;
pause
clc
% 调用 TRAINGDM 算法训练 BP 网络
[net,tr]=train(net,P,T);
pause
clc
% 对 BP 网络进行仿真
A = sim(net,P);
% 计算仿真误差
E = T - A;
MSE=mse(E);
pause
clc
echo off

kangta283
2012-05-17, 20:49
没人么,~~~~~~~~~~~~