我在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()
重新啓動之前,但之後,沒有正在發生的培訓,這成爲一個無限循環。 任何想法我失蹤?
感謝