matlab newff函数弃用了,[转载]MATLAB神经网络函数NEWFF()新旧用法差异

本文介绍了MATLAB R2010a之后newff函数的更新,强调了新旧语法的差异。在新语法中,不需要手动指定输出层神经元数和minmax,但默认引入了数据划分。通过示例展示了新语法导致的mse差异,并提供了解决方案,即清除net.divideFcn属性以避免数据划分,从而使结果与旧语法一致。
摘要由CSDN通过智能技术生成

摘要

在Matlab

R2010a版中,如果要创建一个具有两个隐含层、且神经元数分别为5、3的前向BP网络,使用旧的语法可以这样写:

net1

= newff(minmax(P),

[5

3 1]);

注意minmax()函数的使用,还有对输出层神经元数(1)的指定。

当然也可以采用新的语法,更简洁(请留意差异):

net2

= newff(P, T,

[5

3]);

不用求minmax,也不用人工指定输出层神元数了(newff会根据参数T自行推导)。

不过,为了得到与书本示例接近的结果,接下来需要清除net2.divideFcn等属性再训练,否则结果相去甚远,且远不止一个数量级。

net2.divideFcn = '';

net2.inputs{1}.processFcns = {};  % 1是输入层所在网络层编号

net2.outputs{3}.processFcns = {};

% 3 是输出层所在网络层编号

正文

最近在看朱凯的《精通Matlab神经网络》,到第10章例10-3时,发现newff()的新旧用法得到的结果相去甚远。

书中例10-3采用了旧式写法,代码如下:

%

例10-3,旧式写法

clear all

P = [-1 -1 2 2;

0 5 0 5];

T = [-1 -1 2

2];

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值