我neurolab
在python中使用创建一个神经网络.我创建了一个newff
网络,并使用默认的train_bfgs
训练功能.我的问题很多次,训练只是在时期耗尽或甚至达到错误目标之前结束.我环顾四周,发现了一篇关于neurolabs github页面的帖子,他们在那里解释了为什么会发生这种情况.我的问题是,如果我重新运行程序几次它只是捕获并且训练开始然后错误也会下降(可能一些随机起始权重比其他人好很多).我想做的是在训练中加入一种检查,这样如果错误太高而且训练的时期甚至不接近总数,那么重新训练网络(有点像重新运行程序)(可能重置)网络默认权重)
这是我写的,但显然它不起作用
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()
在重新启动之前执行,但接着,没有正在进行的训练,这就变成了无限循环.知道我错过了什么吗?
谢谢