你好,
你应该知道,神经网络什么时候应该停止训练。
例如,我创建了一个具有fitnet功能的网。我没有改变网络的属性,因此默认设置如下:
> > net.trainParam
ans =
函数'trainlm'的参数
显示培训窗口反馈显示窗口:真
显示命令行反馈showCommandLine: false
命令线频率显示:25
最大时代时代:1000
最大培训时间时间:正
性能目标目标:0
最低梯度min_grad: 1 e-07
最大验证检查max_fail: 6
μμ:0.001
μ减少比例mu_dec: 0.1
μ增加的比例mu_inc: 10
最大μmu_max: 10000000000
这意味着,当出现以下任何一种情况时,训练就会停止:
- 最大数量时代(重复)达到。
- 最大数量时间是超过。
- 性能被最小化到目标.
- 性能梯度如下min_grad.
- μ超过mu_max.
- 验证性能的提高超过max_fail自上次减少以来的次数(使用验证时)。
迫使你的网络完成100个epoch,然后停止
(我不建议这样做,因为停止训练的指示器应该始终是一个性能-/最小误差目标)
,你可以改变你的TrainingFunction的贝叶斯正则化与线
网TrainFcn =“trainbr”
通过贝叶斯正则化,当发生以下任何情况时,训练停止:
- 最大数量时代(重复)达到。
- 最大数量时间是超过。
- 性能被最小化到目标.
- 性能梯度如下min_grad.
- μ超过mu_max.
通过使用以下设置,停止训练的唯一方法是完成100个epoch,因为时间、目标、min_grad和mu_max都无法达到。
net.trainParam
ans =
函数'trainbr'的参数
显示培训窗口反馈显示窗口:真
显示命令行反馈showCommandLine: false
命令线频率显示:25
最大时代时代:100
最大培训时间时间:正
性能目标目标:0
最低梯度min_grad: 1 e - 100
最大验证检查max_fail: 0
μμ:0.005
μ减少比例mu_dec: 0.1
μ增加的比例mu_inc: 10
最大μmu_max: 1 e + 100