web-dev-qa-db-ja.com

Kerasでモデルをフィッティングするとき、バッチサイズとエポック数はどれくらいの大きさにすべきですか?

970個のサンプルでトレーニングを行い、243個のサンプルで検証しています。

Kerasでモデルを適合させてval_accを最適化する場合、バッチサイズとエポック数はどのくらいの大きさにすべきですか?データ入力サイズに基づいて使用する経験則はありますか?

39
pr338

非常に小さなデータセット(〜1000サンプル)があるため、おそらく標準の32のバッチサイズを使用しても安全です。数十万または数百万の観測に関するトレーニングを受けていない限り、問題に大きな違いはありません。

バッチサイズとエポックに関する質問に答えるには:

一般的に:バッチサイズを大きくすると、トレーニングの進行は速くなりますが、必ずしも速く収束するとは限りません。バッチサイズが小さいとトレーニングは遅くなりますが、canは速く収束します。それは間違いなく問題に依存しています。

一般的に、モデルはより多くのエポックのトレーニングでポイントまで改善します。収束すると、精度が安定し始めます。 50のようなものを試して、エポック数(x軸)対精度(y軸)をプロットします。どこで安定す​​るかがわかります。

データの種類や形状は何ですか?これらの画像ですか、それとも表形式のデータですか?これは重要な詳細です。

37
Lucas Ramadan

上記の素晴らしい答え。誰もが良い入力を与えました。

理想的には、これは使用すべきバッチサイズのシーケンスです。

{1, 2, 4, 8, 16} - slow 

{ [32, 64],[ 128, 256] }- Good starters

[32, 64] - CPU

[128, 256] - GPU for more boost
10

Kerasを使用して、音声データの非線形回帰を実行します。各音声ファイルには、テキストファイルの25000行の機能があり、各行には257の実数値が含まれています。 100のバッチサイズ、エポック50を使用して、Sequentialモデルを1つの非表示レイヤーでKerasでトレーニングします。 50エポックのトレーニングの後、低val_lossに非常によく収束します。

7

Kerasを使用して、市場ミックスモデリングの非線形回帰を実行しました。 3つの隠れ層を持つKerasでシーケンシャルモデルをトレーニングしているときに、バッチサイズ32およびエポック= 100で最良の結果が得られました。通常、32または25のバッチサイズが適切であり、大きなデータセットがない限り、エポック= 100です。大規模なデータセットの場合は、エポックb/w 50〜100でバッチサイズ10を使用できます。上記の図もうまく機能しました。

3
fnatic9