2016-01-28 7 views
11

私は970サンプルをトレーニングし、243サンプルで検証しています。Kerasでモデルをフィッティングするときのバッチサイズとエポック数の大きさはどれくらいですか?

val_accを最適化するためにモデルをKerasにフィッティングするとき、バッチサイズとエポック数はどれくらい大きくすべきですか?データの入力サイズに基づいて使用するルールはありますか?

+4

私はこれがあなたのデータに大きく依存していると思います。 XORクラシファイアのような単純なタスクで遊んでいるのであれば、バッチサイズが1の数百エポックで99.9%の精度を得るのに十分です。 MNISTについては、ほとんどバッチサイズと100エポック未満の10〜100程度で妥当な結果が得られました。問題の詳細がなければ、アーキテクチャー、学習ルール/コスト関数、データなどが正確に答えることはできません。 – daniel451

答えて

14

かなり小さいデータセット(〜1000サンプル)があるので、おそらくバッチサイズ32を使用すると安全です(かなり標準的です)。数十万または数百万の観測を訓練していない限り、あなたの問題に大きな違いはありません。一般に

::大規模なバッチサイズは、トレーニングで速く進行になりますが、いつものように速く収束しない。バッチサイズとエポックのご質問に答えるために

バッチサイズが小さいほど列車の速度が遅くなりますが、より速く収束します。それは間違いなく問題に依存します。

一般にでは、モデルはより多くのエポックのトレーニングでポイントまで改善されます。彼らは収束するにつれて、正確さが高まり始めるでしょう。エポック(x軸)対精度(y軸)の50とプロット数のようなものを試してみてください。あなたはそれが水平になるところを見るでしょう。

データの種類および/または形状は?これらの画像、または表形式のデータのみですか?これは重要な詳細です。

+1

"大きいバッチサイズの列車の速度が遅い":いいえ、バッチサイズが大きいほど列車の速度が向上します(計算では、1サンプルあたりの時間) –

+0

@ MarcJ.Schmidtメモリ転送のオーバーヘッドがあるため、ある時点で、バッチをGPUに転送するのに必要な時間は、速度向上よりも大きくなります。このブログで詳細な情報を確認してください - http://www.marekrei.com/blog/ – layser

+0

もちろん、すべてのサイズではありません。しかし、一般的な声明では、大規模なバッチは遅く列車が間違っています。経験則は、GPUを使用している場合でも、GPUの帯域幅のボトルネックに達するまでは、その高速さよりもむしろ高速です。 –

3

Kerasを使用して、音声データに対して非線形回帰を実行します。私のスピーチファイルはそれぞれ、テキストファイルの25000行の機能を提供し、各行は257の実数値を含んでいます。私は100のバッチサイズを使用して、エキゾク50をSequentialモデルをKerasで1つの隠れたレイヤーで訓練します。 50回の訓練の後、それは低いほうによく収束するval_loss

1

私はKerasを使用してマーケットミックスモデリングの非線形回帰を実行しました。 3つの隠れたレイヤーを持つKerasのSequentialモデルを訓練しながら、バッチサイズ32とエポック= 100で最良の結果を得ました。一般的に、バッチサイズが32または25の場合は、大規模なデータセットを持たない限り、エポック= 100でよいです。大規模なデータセットの場合は、バッチサイズが10で、エポック数が50〜100のバッチサイズを使用することができます。 上記の数値はここでもうまくいきました。

関連する問題