Kerasにおけるモデルの学習は、model.fit() メソッドを用いて行います。このメソッドは、指定された訓練データに基づいてモデルを一定のエポック数だけ学習させます。以下では model.fit() の基本的な使い方と、代表的な引数(epochs、batch_size など)について詳しく解説します。
基本的な構文
主な引数とその意味
| 引数名 | 説明 |
|---|---|
x |
入力データ。NumPy配列、またはtf.data.Datasetやkeras.utils.Sequenceでも可。 |
y |
教師データ(ラベル)。xと同じサンプル数を持つ配列またはデータセット。 |
batch_size |
ミニバッチのサイズ。1回の重み更新に使うサンプル数(デフォルト: 32)。大きくすると計算効率が上がるが、学習の安定性に影響する。 |
epochs |
エポック数(デフォルト: 1)。データセット全体を何回学習させるか。 |
verbose |
出力ログの形式。 ・0: 出力なし ・1: プログレスバー表示 ・2: 1エポックごとのログ表示 |
validation_data |
検証データとして使う (x_val, y_val) のタプル。指定すると、各エポック後にこのデータで精度などを評価する。 |
validation_split |
訓練データの一部を検証用に使う比率(例: 0.2であれば20%を検証用に使う)。validation_dataを使う場合は指定しない。 |
shuffle |
データのシャッフルを行うか(デフォルト: True)。シャッフルは過学習を防ぎ、学習の安定性を高める。 |
callbacks |
学習中に呼び出すコールバック関数のリスト(例: ModelCheckpoint, EarlyStopping, TensorBoard など)。 |
例: シンプルな学習のコード
戻り値(history)
history)model.fit() は History オブジェクトを返します。このオブジェクトは、各エポックにおける損失や精度などの履歴を保持しており、次のように利用できます。
補足
-
model.fit()の内部では自動的にバッチ単位で勾配降下法が適用されます。 -
大規模データセットでは、
tf.data.Datasetを使ってデータのバッチ化や前処理を行うことでメモリ効率が向上します。 -
fit()の代替として、逐次的な学習が必要な場合はfit_generator()(非推奨)やtrain_on_batch()を使用することもあります。
生成日:2025/05/22