【发布时间】:2015-06-29 17:04:33
【问题描述】:
我已经训练了一个神经网络,如下所示:
net.b 返回两个值:
<25x1 double>
0.124136217326482
net.IW 返回两个值:
<25x16 double>
[]
net.LW 返回以下内容:
[] []
<1x25 double> []
我假设 new.LW 返回单个隐藏层中 25 个神经元的权重。
我不明白 net.IW 返回什么以及他们从哪里得到数字 16。
请帮忙!
编辑:添加了培训代码
netJan = newff(trainX', trainY', networkConfigJan, {'tansig','purelin'},'trainlm');
netJan.trainParam.goal = 1e-9;
netJan.trainFcn = 'traingda';
netJan = train(netJan, trainX', trainY');
尺寸
- trainX 有 10 列,2153 行
- trainY 有 1 列,2153 行
在这段代码之后,我只使用 10 个输入列执行预测,所以其他 6 个完全是内部的。
我的期望:
25x1 数组告诉我隐藏层中每个神经元的值。
10x25 数组告诉我从输入层到隐藏层的每条“线”的权重。
25x1 数组告诉我从隐藏层到输出层的每条“线”的权重。
编辑 2:
net = feedforwardnet( [25] );
net = train( net, trainX', trainY' );
size( net.IW{1}' ) % 10 x 25 , Yay!
net = newff(trainX', trainY', [25]);
net = train(net, trainX', trainY');
size( net.IW{1}' ) % 16 x 25, How is this possible?
【问题讨论】:
-
你知道隐藏层有多少层吗?这些层中的每一层有多少个神经元?顺便说一句,我假设“IW”表示 inputWeights,“LW”表示 layerWeights,对吧?
-
@scmg 隐藏层有 25 个神经元。输入层有 10 个神经元,输出层有 1 个神经元。因此,我需要一个 10x25 数组作为输入权重,而 25x1 数组告诉我从隐藏层到输出层的每条“线”的权重。
标签: matlab neural-network