我在Python中使用neurolab
来创建神经网络工具。我创建了一个newff
网络,并使用默认的train_bfgs
培训功能。我的问题很多时候,在时代耗尽或者甚至达到错误目标之前,培训就结束了。我环顾四周,在neurolabs github页面上发现了一篇文章,他们在那里解释了为什么会发生这种情况。我的问题是,如果我重新运行程序几次,它就会抓住并开始训练,然后错误也会下降(可能一些随机起始权重比其他人好得多)。我想要做的是在训练中加入一种检查,以便如果错误过高并且训练的时间点不够接近总训练时间,则重新训练网络(有点像重新运行程序)(也许重置网络默认权重)Neurolab重新训练网络
这里是我写的,但显然它不工作
trainingComplete = False
while not trainingComplete:
error = net.train(trainingData, TS, epochs=50, show=10, goal=0.001)
if len(error) < 0.8*epochs:
if len(error) > 0 and min(error) < 0.01:
trainingComplete = True
else:
net.reset()
continue
else:
trainingComplete = True
是怎么回事就是当它传递的第一个条件,即太少训练时期,它执行net.reset()
重新启动之前,但之后,没有正在发生的培训,这成为一个无限循环。 任何想法我失踪?
感谢