Kerasでコールバック関数を使う方法は?

Kerasでコールバック関数を使用すると、モデルのトレーニング中にコールバック関数のリストを渡すことで実装できます。コールバック関数はトレーニングプロセス中の特定のタイミングで呼び出される関数であり、モデルの保存、学習率の動的調整、トレーニングプロセスの可視化などの機能を実装するために使用できます。

以下は、Kerasでコールバック関数を使用する方法を示す簡単な例です。

from keras.models import Sequential
from keras.layers import Dense
from keras.callbacks import ModelCheckpoint

# 创建一个简单的Sequential模型
model = Sequential()
model.add(Dense(64, activation='relu', input_dim=100))
model.add(Dense(64, activation='relu'))
model.add(Dense(1, activation='sigmoid'))

# 编译模型
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])

# 定义一个回调函数,用来保存模型的权重
checkpoint = ModelCheckpoint(filepath='weights.{epoch:02d}-{val_loss:.2f}.hdf5',
                             monitor='val_loss', save_best_only=True)

# 模型训练,并传入回调函数的列表
model.fit(x_train, y_train, epochs=10, batch_size=32, validation_data=(x_val, y_val), callbacks=[checkpoint])

上記の例では、モデルの重みを保存するためにModelCheckpointコールバック関数を定義しました。モデルのトレーニング中には、このコールバック関数をcallbacksパラメータに渡すことで、各エポックの終わりに検証セットの損失値が改善された場合にモデルの重みが保存されるようにします。

ModelCheckpointコールバック関数以外にも、KerasにはEarlyStoppingやTensorBoardなど、さまざまな組み込みコールバック関数が用意されています。具体的なニーズに応じて適切なコールバック関数を選択して使用することができます。

bannerAds