2012-02-04 10 views
9

私は、ニューラルネットワークN pybrainを持っているが、二つの入力と、中間層と出力layer.Iは電車に次のようにします。パイブレインのニューラルネットワークのトレーニングをどのように計算または監視できますか?

trainer = BackpropTrainer(net,ds) 
trainer.trainUntilConvergence() 

ネットは、ニューラルネットワークとdsは列車のデータです。

私の質問は、トレーニングを完了するために必要な時間を計算することができるかどうか、またはどのようにトレーニングの進行状況を監視できるかです。ありがとうございます。

答えて

10

あなたはいつもBackpropTrainer(ソースコードhere) をサブクラス化し、maxEpochsを使用している場合trainUntilConvergenceをオーバーライドし、エポックとエポックの間の比率を使用して完全性の割合を追跡することができます。

maxEpochsを使用しない場合は、検証エラーの平均変化率とサイズcontinueEpochsに基づいて、残りのエポック数を常に推測することができます。あるいは単に検証エラーの変化率を調べるだけです。エポックを時間にマッピングしたい場合は、各エポックの時間をプロファイリングして保存する必要があります。

+1

理想的にはあなたがtrainEpochsを使用したい役立つと思います()。 X個のエポックをトレインし、結果を確認し、x個のエポックをトレインします。収束または最大エポックまで繰り返す。 – NothingMore

2

私はそれのために使用したコードを除いて、前のコメントに追加するには何もない:

maxepochs=20 
results=[] 
for i in range(len(maxepochs)): 
    aux = trainer.train() 
    results.extend(aux) 
    plt.figure() 
    plt.scatter(range(len(results[0])),results[0]) 
    plt.draw() 

あなたはすべてのサイクルで新しいプロットになるだろう。それほど素晴らしいことではありませんが、それは私のために働きます。

希望私が代わりにtrainUntilConvergenceを変更する)(あなたは

+0

maxepochsはintです。 lenプロパティはありません。あなたは結果を意味しましたか?追加(補助)? – agcala

関連する問題