model.fit()の使い方と引数(epochs, batch_sizeなど)

Kerasにおけるモデルの学習は、model.fit() メソッドを用いて行います。このメソッドは、指定された訓練データに基づいてモデルを一定のエポック数だけ学習させます。以下では model.fit() の基本的な使い方と、代表的な引数(epochsbatch_size など)について詳しく解説します。


基本的な構文

python
model.fit(x, y, epochs=10, batch_size=32, validation_data=(x_val, y_val))

主な引数とその意味

引数名 説明
x 入力データ。NumPy配列、またはtf.data.Datasetkeras.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 など)。

例: シンプルな学習のコード

python
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy']) history = model.fit( x_train, y_train, epochs=20, batch_size=64, validation_split=0.2, shuffle=True, verbose=1 )

戻り値(history

model.fit()History オブジェクトを返します。このオブジェクトは、各エポックにおける損失や精度などの履歴を保持しており、次のように利用できます。

python
import matplotlib.pyplot as plt plt.plot(history.history['loss'], label='train loss') plt.plot(history.history['val_loss'], label='val loss') plt.legend() plt.show()

補足

  • model.fit() の内部では自動的にバッチ単位で勾配降下法が適用されます。

  • 大規模データセットでは、tf.data.Dataset を使ってデータのバッチ化や前処理を行うことでメモリ効率が向上します。

  • fit() の代替として、逐次的な学習が必要な場合は fit_generator()(非推奨)や train_on_batch() を使用することもあります。

生成日:2025/05/22