は有意義な方法でこれらの値を設定するためには、あなたのデータに関する情報のいくつかのより多くのビットを持っている必要がありますこの量をT
と呼んでください。
2.訓練のバッチサイズトレーニングの例の数を1つのバッチで一緒に処理した場合、これは通常'train_val.prototxt'
の入力データレイヤーによって設定されます。たとえば、this fileでは電車のバッチサイズは256に設定されています。この量をtb
で表すことにしましょう。
3.検証セットサイズモデルの検証のために設定したサンプルの合計数は、V
で表します。
4.試験フェーズでは、検証バッチサイズの値がbatch_size
に設定されています。 this exampleでは50に設定されています。これをvb
としましょう。
今、トレーニング中に、ネットのパフォーマンスの偏りのない推定値を毎回取得したいと考えています。これを行うには、test_iter
反復の検証セットでネットを実行します。検証セット全体をカバーするには、test_iter = V/vb
が必要です。
この見積りをどのくらいの頻度で受け取りたいですか?それは本当にあなた次第です。非常に大きな検証セットと低速のネットがある場合は、検証が頻繁に行われるとトレーニングプロセスが長くなりすぎます。一方、十分に検証されていないと、トレーニングプロセスが収束しなかったかどうかと気付かないことがあります。 test_interval
は、どのくらいの頻度で検証するかを決定します。通常、大規模なネットの場合は、より小さい、より速いネットの場合は、より低い値を選択することがあります。を5Kのオーダーで設定します。もう一度、あなた次第です。
トレーニングセット全体(「エポック」を完成させる)をカバーするには、T/tb
の繰り返しが必要です。通常、1つはいくつかのエポックの列車なので、max_iter=#epochs*T/tb
です。
iter_size
について:これにより、いくつかのトレーニングミニバッチでの平均グラジエントが可能になります。詳しくはthis threadを参照してください。
もう一つのメタパラメータは 'weight_decay'です。それを設定する方法については、[this thread](http://stackoverflow.com/q/32177764/1714410)を参照してください。 – Shai