当前位置:  开发笔记 > 编程语言 > 正文

如何在MATLAB中更改newfit()的默认参数?

如何解决《如何在MATLAB中更改newfit()的默认参数?》经验,为你挑选了1个好方法。

我在用

net = newfit(in,out,lag(j),{'tansig','tansig'});

生成一个新的神经网络.数量的默认值validation checks6.

我正在训练很多网络,这需要花费很多时间.我想如果我的结果不那么精确,如果它们可以快得多,那就无所谓了.

我怎样才能更快地训练?

我相信其中一种方法可能是减少验证检查次数的价值.我该怎么做(在代码中,不使用GUI)

还有其他方法来提高速度.

正如我所说,速度的提高可能会略微降低准确性.



1> Amro..:

只是为了扩展@mtrw的答案,根据文档,当出现任何这些情况时,训练停止:

达到最大历元数:net.trainParam.epochs

超过最长时间:net.trainParam.time

性能最小化到目标:net.trainParam.goal

性能梯度低于min_grad:net.trainParam.min_grad

亩超过mu_max:net.trainParam.mu_max

自上次减少(使用验证时)以来,验证性能增加了超过max_fail次数:net.trainParam.max_fail

时期时间限制允许在训练持续时间上设置上限.

当性能(误差)低于它时,目标约束会停止训练,并且通常允许您调整时间/准确度权衡级别:更准确的结果以便更快地执行.

这类似于min_grad(渐变告诉你"下降"的强度),如果渐变的幅度小于mingrad,训练就会停止.可以理解的是,如果误差函数变化不大,那么我们就达到了一个平台,我们应该停止训练,因为我们不会有太大的改进.

mu,mu_decmu_max用于控制权重更新过程(反向传播).

max_fail通常用于避免过度拟合,而不是用于加速.

我的建议是,将时间时期设置为应用程序约束允许的最大可能值(否则结果将很差).反过来,您可以控制目标min_grad达到所需的速度/准确性权衡级别.请记住,max_fails不会让你获得任何时间,因为它主要用于确保良好的泛化能力.

推荐阅读
虎仔球妈_459
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有