ysy1981 发表于 2006-9-4 15:22

请教一个初级问题:BP网络问题,在线急等,谢谢赐教!

P为15*10,T为12*10;
请问:
net=newff(threshold,,{'tansig','logsig'},'trainscg','learngdm');%新建BP神经网络
net.trainParam.epochs=1000;%bp网络训练次数
net.trainParam.goal=0.002;%网络训练目标
net.trainParam.lr=0.01;%网络学习速率
=train(net,P,T);%训练网络
构建的网络结构是?在线急等!谢谢赐教
网络结构为 输入层-隐含层-输出层
                        15-32-12吗?
请大虾赐教 谢谢1
训练后的网络怎么存储呢?只是存储net变量就可以了吗?

[ 本帖最后由 ysy1981 于 2006-9-5 10:29 编辑 ]

happy 发表于 2006-9-4 17:18

save filename net

ysy1981 发表于 2006-9-5 09:06

happy教授 :我的网络结构是那样的吗 ?

ysy1981 发表于 2006-9-5 09:10

matlab中的网络工具箱,多数都是黑匣子,不清楚到底具体的计算过程,真让人头疼!

ericlin 发表于 2006-9-5 09:13

原帖由 ysy1981 于 2006-9-5 09:06 发表
happy教授 :我的网络结构是那样的吗 ?
确实是:15-32-12

ysy1981 发表于 2006-9-5 09:39

首先谢谢楼上的赐教!
要是说:P的每一列代表一个变量的话,这个训练样本就是包括10样本对吗?
输出T代表12个变量和对应输入样本的训练结果吗?
这样说对吗?
不知道我说明白了没!

ysy1981 发表于 2006-9-5 09:57

S1=12;m=3;
threshold=[0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;...
         0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;...
         0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;...
         0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1];
net = newff(threshold,,{'tansig' 'purelin'});
net.trainParam.epochs = 10000;
net.trainParam.goal = 0.002;
net.trainParam.lr = 0.35;
net = train(net,p,t);
Y = sim(net,p);
plot(p,t,p,Y,'o')
自己建立的网络,p、t为同一矩阵,60*3
请教两个问题:
1 newff建立网络,不知为何要用建立一个60*2的threshold(参考别人的网络)?对threshold的值有要求吗?
2 错误一直提示
Error using ==> network/train
Targets are incorrectly sized for network.
Matrix must have 3 rows.
不值那儿出错了。肯请大虾帮助!在线急等!

ysy1981 发表于 2006-9-5 10:32

P=[0.1452 0.1466 0.1314 0.2243 0.3523 0.4642 0.5015 0.6981 0.7821 0.8345 0.9649 1.156 0.2415 0.3027 0;
   0.1217 0.1581 0.1408 0.2304 0.3143 0.4312 0.5819 0.7125 0.8065 0.8647 0.9726 1.132 0.2385 0.3125 0;
   0.1525 0.1627 0.1507 0.2406 0.3502 0.4636 0.5051 0.7352 0.8459 0.8915 0.9654 1.156 0.2216 0.2701 1;
   0.1016 0.1105 0.1234 0.1978 0.3021 0.4232 0.5819 0.6952 0.8015 0.8725 0.9825 1.095 0.2352 0.2506 0.5;
   0.1115 0.1201 0.1312 0.2019 0.3532 0.4736 0.5029 0.7032 0.8189 0.8619 0.9365 1.125 0.2542 0.3125 0;
   0.1335 0.1322 0.1534 0.2214 0.3623 0.4827 0.5198 0.7276 0.8359 0.8906 0.9592 1.143 0.2601 0.3198 0;
   0.1368 0.1432 0.1653 0.2205 0.3823 0.4971 0.5136 0.7129 0.8263 0.8953 0.9891 1.137 0.2579 0.3099 0;
   0.1342 0.1368 0.1602 0.2131 0.3726 0.4822 0.5101 0.7098 0.8127 0.8921 0.9995 1.126 0.2301 0.2867 0.5;
   0.1113 0.1212 0.1305 0.1819 0.3952 0.4312 0.5886 0.6898 0.7999 0.8423 0.9721 1.095 0.2234 0.2799 1;
   0.1005 0.1121 0.1207 0.1605 0.3556 0.4022 0.5553 0.6673 0.7798 0.8623 0.9521 1.087 0.2314 0.2977 0]';
T=[0.1217 0.1581 0.1408 0.2304 0.3143 0.4312 0.5819 0.7125 0.8265 0.8847 0.9826 1.132;
   0.1525 0.1627 0.1507 0.2406 0.3502 0.4636 0.5051 0.7352 0.8459 0.8915 0.9464 1.156;
   0.1016 0.1105 0.1234 0.1978 0.3021 0.4232 0.5819 0.6952 0.8015 0.8825 0.9825 1.102;
   0.1115 0.1201 0.1312 0.2019 0.3532 0.4736 0.5029 0.7032 0.8189 0.8919 0.9965 1.125;
   0.1335 0.1322 0.1534 0.2214 0.3623 0.4827 0.5198 0.7276 0.8359 0.8506 0.9892 1.123;
   0.1368 0.1432 0.1653 0.2205 0.3823 0.4971 0.5136 0.7129 0.8263 0.8953 0.9691 1.117;
   0.1342 0.1368 0.1602 0.2131 0.3726 0.4822 0.5101 0.7098 0.8127 0.8921 0.9995 1.126;
   0.1113 0.1212 0.1305 0.1819 0.3952 0.4312 0.5886 0.6898 0.7999 0.8323 0.9721 1.156;
   0.1005 0.1121 0.1207 0.1605 0.3556 0.4022 0.5553 0.6673 0.7798 0.8623 0.9521 1.156;
   0.1123 0.1257 0.1343 0.2079 0.3579 0.4716 0.5459 0.7145 0.8205 0.8901 0.9419 1.136]';
=size(P)
=size(T)
threshold=;
net=newff(threshold,,{'tansig','logsig'},'trainscg','learngdm');%新建BP神经网络
net.trainParam.epochs=1000;%bp网络训练次数
net.trainParam.goal=0.002;%网络训练目标
net.trainParam.lr=0.01;%网络学习速率
=train(net,P,T);%训练网络
pause
figure(2)
P_test=';%网络输入数据
Out=sim(net,P_test);%网络仿真
X=;%实际测得数据
t=1:1:12;
box off;
grid off;
plot(t,Out,'b',t,X,'r');%画出二维图形
这是我参考的网络,不知道为何,训练输入为15*10,模拟仿真怎么是1*15的矩阵了
高手指点一下吧!在线急等,谢谢赐教!

jimin 发表于 2006-9-5 10:35

原帖由 ysy1981 于 2006-9-5 10:32 发表
P=[0.1452 0.1466 0.1314 0.2243 0.3523 0.4642 0.5015 0.6981 0.7821 0.8345 0.9649 1.156 0.2415 0.3027 0;
   0.1217 0.1581 0.1408 0.2304 0.3143 0.4312 0.5819 0.7125 0.8065 0.8647 0.9726 1.132 0.2385...
输入是10 个样本,仿真是1个样本

jimin 发表于 2006-9-5 10:39

请教两个问题:
1 newff建立网络,不知为何要用建立一个60*2的threshold(参考别人的网络)?对threshold的值有要求吗?
2 错误一直提示
Error using ==> network/train
Targets are incorrectly sized for network.
Matrix must have 3 rows.
1 ,threshold是表示输入向量p的范围,一般用minmax(p) 就可以,你设的范围要比p的范围大就不会错拉
2t要求三行,net = newff(threshold,,{'tansig' 'purelin'});,这是你那个m指定的

ysy1981 发表于 2006-9-5 10:40

楼上能再说明一下吗?
怎么测试样本和仿真样本的列数不一样呢?
网络可以自动识别矩阵的列或行作为输入吗?
不知道我说明白了没有?

F117_ren_0 发表于 2006-9-5 11:12

1 newff建立网络,不知为何要用建立一个60*2的threshold(参考别人的网络)?对threshold的值有要求吗?
2 错误一直提示
Error using ==> network/train
Targets are incorrectly sized for network.
Matrix must have 3 rows.
不值那儿出错了。肯请大虾帮助!在线急等!

人家建60*2的threshold是因为人家有60个输入因子.
对threshold的值有要求,要跟输入的因子数目一致.
matrix must have 3 rows说明你的仿真数据输入的时候不是3列(看行和列你理解)

ysy1981 发表于 2006-9-5 11:19

我要是用newff建立网络,p、t为同一矩阵,60*3。
仿真数据也是p,我该如何设置参数?
请大虾赐教,在线急等!谢谢!
越看越糊涂了!

F117_ren_0 发表于 2006-9-5 11:28

这是我参考的网络,不知道为何,训练输入为15*10,模拟仿真怎么是1*15的矩阵了
-}?hV$WN4Ifg高手指点一下吧!在线急等,谢谢赐教!
输入是15个因子(样本),输出有1个(仿真)
为什么会出现1*15呢?你不是写错了吧?15*1才对哦!`

jimin 发表于 2006-9-5 11:36

为什么非得老是要等人家来告诉你是怎么样的
仿真数据也是p,仿真数据最好不要用p,关于这个问题,我记得已经和你说过了,
我让你去看研学论坛的神经网络版,不知道你有没有去看过,这些只不过是我的一点建议而已,虽然好问不是什么坏事,但是问之前要多想想,多查查资料,问出一些好问题来,不知你做何感想
我不知道你是什么背景,什么学历,但是自己独立解决问题的能力很重要,主动查资料,主动学习,才能掌握主动权
页: [1] 2
查看完整版本: 请教一个初级问题:BP网络问题,在线急等,谢谢赐教!