查看: 98|回复: 3|关注: 0

[已解决] 为什么BP神经网络隐藏层到输出层的权值必须为空矩阵

[复制链接]

新手

9 麦片

财富积分


050


2

主题

12

帖子

0

最佳答案
为什么BP神经网络隐藏层到输出层的权值必须为空矩阵,而且直接幅值不通过,请帮忙解答一下,谢谢各位!
程序如下:(我主要是想看看权值对结果的影响,为什么加这一段net.iw{2,1} = [0.2622; -0.2375; -0.4525; 0.2361; ];程序不能通过。

p=[0 0;0 1; 1 0 ;1 1]';
t=[0 0 0 1];
net = newff(minmax(p),[4 1],{'tansig' 'purelin'},'traingdm');

net.iw{1,1} = [0.5000 0.5000; 0.5000 0.5000; 0.5000 0.5000; 0.5000 0.5000];
net.b{1} = [-2.8562; 1.0774; -0.5880; 1.4083];
%net.iw{2,1} = [0.2622; -0.2375; -0.4525; 0.2361; ];
%net.b{2} = [0.1326];
net.trainparam.show=50; %每次循环50次
net.trainParam.epochs = 10000; %最大循环10000次
net.trainparam.goal=0.0001; %期望目标误差最小值
net = train(net,p,t); %对网络进行反复训练
Y = sim(net,p)

新手

9 麦片

财富积分


050


2

主题

12

帖子

0

最佳答案
 楼主| 发表于 2018-8-9 20:14:42 | 显示全部楼层
因为设置了两层隐含层,为什么还不行呢?对此表示很疑惑

MATLAB 基础讨论
版块优秀回答者

入门

113 麦片

财富积分


50500


0

主题

272

帖子

24

最佳答案
  • 关注者: 2
发表于 2018-8-10 09:51:38 | 显示全部楼层 |此回复为最佳答案
答案给你改好了
再好好去理解下吧
clear all;
clc
p=[0 0;0 1; 1 0 ;1 1]';
t=[0 0 0 1];
net = newff(minmax(p),[4 1],{'tansig' 'purelin'},'traingdm');

net.iw{1,1} = [0.5000 0.5000; 0.5000 0.5000; 0.5000 0.5000; 0.5000 0.5000];
net.b{1} = [-2.8562; 1.0774; -0.5880; 1.4083];
net.lw{2,1} = [0.2622, -0.2375, -0.4525, 0.2361; ];
net.b{2} = [0.1326];
net.trainparam.show=50; %每次循环50次
net.trainParam.epochs = 10000; %最大循环10000次
net.trainparam.goal=0.0001; %期望目标误差最小值
net = train(net,p,t); %对网络进行反复训练
Y = sim(net,p)

新手

9 麦片

财富积分


050


2

主题

12

帖子

0

最佳答案
 楼主| 发表于 2018-8-10 10:41:31 | 显示全部楼层
wjb986555360 发表于 2018-8-10 09:51
答案给你改好了
再好好去理解下吧
clear all;

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

本版积分规则

关闭

站长推荐上一条 /3 下一条

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