早期停止は、トレーニングデータセットの過剰適合を避けるために使用される正則化の形式です。早期停止は、トレーニングが停止するいくつかのエポックの損失が減少する場合、検証損失を追跡します。 early_stopping_pytorch/early_stopping.pyのEarlyStoppingクラスは、Pytorchモデルのトレーニング中に検証損失を追跡するオブジェクトを作成するために使用されます。検証損失が減少するたびに、モデルのチェックポイントを保存します。 EarlyStoppingクラスでは、トレーニングループを壊す前に検証損失が改善した後に待ちたいエポックの数にpatience議論を設定しました。 mnist_early_stopping_exampleノートブックでEarlyStoppingクラスを使用する方法の簡単な例があります。
その下には、モデルが過剰に適合し始める直前に、初期散発オブジェクトによって作成された最後のチェックポイントを示すノートブックの例のプロットがあります。 20に設定された忍耐がありました。
pip install early-stopping-pytorch開発のため、または最新の未発表の変更が必要な場合:
git clone https://github.com/your_username/early-stopping-pytorch.git
cd early-stopping-pytorchセットアップスクリプトを実行して、仮想環境を作成し、必要なすべての依存関係をインストールします。
./setup_dev_env.sh仮想環境を有効にします:
source dev-venv/bin/activate編集モードでローカルにパッケージをインストールして、すぐに使用できるようにします。
pip install -e . from early_stopping_pytorch import EarlyStopping
# Initialize early stopping object
early_stopping = EarlyStopping ( patience = 7 , verbose = True )
# In your training loop:
for epoch in range ( num_epochs ):
# ... training code ...
val_loss = ... # calculate validation loss
# Early stopping call
early_stopping ( val_loss , model )
if early_stopping . early_stop :
print ( "Early stopping triggered" )
break完全な例については、Mnistの早期停止例ノートブックを参照してください。
このパッケージが研究で役立つと思う場合は、次のように引用することを検討してください。
@misc { early_stopping_pytorch ,
author = { Bjarte Mehus Sunde } ,
title = { early-stopping-pytorch: A PyTorch utility package for Early Stopping } ,
year = { 2024 } ,
url = { https://github.com/Bjarten/early-stopping-pytorch } ,
}early_stopping_pytorch/early_stopping.pyのEarlyStoppingクラスは、Ignite Early -Stoppingクラスに触発されています。