|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
各位大侠:
这是我写的神经网络训练的程序
P=[ 1 0 0 0 0 1 0 0 0 0;
1 0 0 0 0 0 1 0 0 0;
1 0 0 0 0 0 0 1 0 0;
1 0 0 0 0 0 0 0 1 0;
1 0 0 0 0 0 0 0 0 1;
0 1 0 0 0 1 0 0 0 0;
0 1 0 0 0 0 1 0 0 0;
0 1 0 0 0 0 0 1 0 0;
0 1 0 0 0 0 0 0 1 0;
0 1 0 0 0 0 0 0 0 1;
0 0 1 0 0 1 0 0 0 0;
0 0 1 0 0 0 1 0 0 0;
0 0 1 0 0 0 0 1 0 0;
0 0 1 0 0 0 0 0 1 0;
0 0 1 0 0 0 0 0 0 1;
0 0 0 1 0 1 0 0 0 0;
0 0 0 1 0 0 1 0 0 0;
0 0 0 1 0 0 0 1 0 0;
0 0 0 1 0 0 0 0 1 0;
0 0 0 1 0 0 0 0 0 1;
0 0 0 0 1 1 0 0 0 0;
0 0 0 0 1 0 1 0 0 0;
0 0 0 0 1 0 0 1 0 0;
0 0 0 0 1 0 0 0 1 0;
0 0 0 0 1 0 0 0 0 1]';
T=[ 0 0 0.5 0 0;
0 0 0 0.5 0;
0 0 0 0.5 0;
0 0 0 0 1;
0 0 0 0 1;
0 0 1 0 0;
0 0 0 0.5 0;
0 0 0 0.5 0;
0 0 0 0.5 0;
0 0 0 0 1;
0 0.5 0 0 0;
0 0.5 0 0 0;
0 0 1 0 0;
0 0 1 0 0;
0 0 0 0.5 0;
1 0 0 0 0;
0 0.5 0 0 0;
0 0.5 0 0 0;
0 0.5 0 0 0;
0 0 1 0 0;
1 0 0 0 0;
1 0 0 0 0;
0 0.5 0 0 0;
0 0.5 0 0 0;
0 0.5 0 0 0;]';
%根据Kolmogorov定理,由输入层有10个结点,所以中间层有21个结点
%中间层神经元的传递函数为tansig
%输出层有7个结点,其神经元传递函数为logsig
%训练函数采用traingdx
net=newff(minmax(P),[21,5],{'tansig','logsig'},'traingdx');
%训练步数为1000次
%训练目标误差为0.001
net.trainParam.epochs=1000;
net.trainParam.goal=0.001;
net=train(net,P,T);
我的问题:
1、为什么不是每次训练都能达到目标误差呢?怎么样才算这个网络训练好了?
2、怎样利用离线训练好的网络呢?直接在后面加C=sim(net,P);吗?这样的话,这是在线计算吧?在这个过程中,达不到目标误差,结果可不可靠?为什么每次输出的结果差别非常大?
谢谢各位,能不能传一个完整的神经网络的例子啊??
谢谢 |
|