找回密码
 注册
Simdroid-非首页
查看: 222|回复: 5

matlab中BP神经网络训练完成后怎样得到训练好的权值和阈值

[复制链接]
发表于 2010-3-4 21:02:58 | 显示全部楼层 |阅读模式 来自 北京海淀
大家好,我现在使用matlab中的BP神经网络进行数据的训练,使用下面的程序
close all
clear
echo on
clc
pause
clc
P=[-1,-2,3,1;-1,1,5,-3];
T=[-1,-1,1,1];
pause
clc
net=newff(minmax(P),[3,1],{'tansig','purelin'},'traingdm')
inputWeights=net.IW{1,1}
inputbias=net.b{1}
layerWeights=net.LW{2,1}
layerbias=net.b{2}
pause
clc
net.trainParam.show=50;
net.trainParam.lr=0.05;
net.trainParam.mc=0.9;
net.trainParam.epochs=1000;
net.trainParam.goal=1e-3;
pause
clc
[net,tr]=train(net,P,T);
pause
clc
A=sim(net,P)
E=T-A
MSE=mse(E)
P1=[1;1];
A1=sim(net,P1)
pause
clc
x=[1;2;3;4];
figure;
plot(x,T,'*r',x,A,'ob')
axis([0 5 -1.5 1.5]);
clc
echo off
我想知道加上什么语句之后可以在matlab中显示出训练完成后的权值和阈值?应该加在什么地方呢?我在网上看到加上
w1=net.IW{1,1};
theta1=net.b{1,1};
w2=net.LW{2,1};
theta2=net.b{2,1};这些可以,但是我的不行,是不是加的位置不对?
请高手指点,先谢过了
发表于 2010-3-27 12:59:43 | 显示全部楼层 来自 湖南长沙
Simdroid开发平台
我见过的好像是theta1=net.b{1},不是theta1=net.b{1,1},,最后在查看w,b我也是在书上看的,新手,仅供参考

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2010-4-1 17:46:41 | 显示全部楼层 来自 江苏南京
放在[net,tr]=train(net,p,t);下面
w1=net.iw{1,1};
w2=net.lw{2,1};
theta1=net.b{1};
theta2=net.b{2};
如果搞反的话保存的是初始权值

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2010-4-2 07:53:41 | 显示全部楼层 来自 湖南长沙
把后面的分号去掉就可以看到了
回复 不支持

使用道具 举报

发表于 2011-3-25 20:14:14 | 显示全部楼层 来自 上海松江区
新手,学习中
回复 不支持

使用道具 举报

发表于 2011-3-25 21:12:06 | 显示全部楼层 来自 上海松江区
按照3#的说法做了,执行不了啊
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-10-4 23:27 , Processed in 0.045671 second(s), 18 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表