始める無料で始める

Lightning でモデルの訓練を最適化する

ModelCheckpoint や EarlyStopping のような自動化の手法を取り入れることで、不要な計算を避けながら、最も性能の良いパラメータをモデルに選択させることができます。

使用するデータセットは Osmanya MNIST データセットの一部で、スケーラブルな AI 訓練手法が効率と精度を大きく向上させる実践的な事例を示しています。

OsmanyaDataModule と ImageClassifier はあらかじめ定義済みです。

この演習はコースの一部です

PyTorch Lightning によるスケーラブルな AI モデルの構築

コースを見る

演習の手順

  • モデルのチェックポイント保存と早期終了に使うコールバックをインポートします。
  • ModelCheckpoint と EarlyStopping のコールバックを使ってモデルを訓練します。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Import relevant checkpoints
from lightning.pytorch.callbacks import ____, ____

class EvaluatedImageClassifier(ImageClassifier):
    def validation_step(self, batch, batch_idx):
        x, y = batch
        y_hat = self(x)
        acc = (y_hat.argmax(dim=1) == y).float().mean()
        self.log("val_acc", acc)

model = EvaluatedImageClassifier()
data_module = OsmanyaDataModule()
# Train the model with ModelCheckpoint and EarlyStopping checkpoints
trainer = Trainer(____=[____(monitor="val_acc", save_top_k=1), ____(monitor="val_acc", patience=3)])
trainer.fit(model, datamodule=data_module)
コードを編集して実行