Sto usando neurolab
in python per creare una rete neurale. Creo una rete newff
e sto utilizzando la funzione di allenamento train_bfgs
predefinita. Il mio problema è molte volte, l'allenamento termina prima che le epoche finiscano o che venga raggiunto anche il target di errore. Mi sono guardato intorno e ho trovato un post sulla pagina github dei neurolabs, dove hanno spiegato perché questo stava accadendo. Il mio problema è che se eseguo di nuovo il programma alcune volte, si attiva e l'allenamento inizia e poi cade anche l'errore (probabilmente alcuni pesi iniziali casuali sono molto migliori degli altri). Quello che voglio fare è mettere una sorta di check in allenamento in modo che se l'errore è troppo alto e le epoche che ha allenato non sono nemmeno vicine al totale, quindi riqualificare la rete (un po 'come rieseguire il programma) (magari resettando i pesi di default di rete)Neurolab riqualificare la rete
Ecco quello che ho scritto, ma ovviamente doesnt lavoro
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
cosa sta succedendo a dire, quando passa la prima condizione, cioè troppo poche epoche di formazione, esegue il net.reset()
prima di riavviarlo, ma in seguito, non è in corso alcuna formazione e questo diventa un ciclo infinito. Qualche idea di cosa mi manca?
Grazie