L'arrêt précoce est une forme de régularisation utilisée pour éviter un sur-ajustement sur l'ensemble de données de formation. L'arrêt précoce garde une trace de la perte de validation, si la perte cesse de diminuer pour plusieurs époques d'affilée, l'entraînement s'arrête. La classe EarlyStopping dans early_stopping_pytorch/early_stopping.py est utilisée pour créer un objet pour garder une trace de la perte de validation tout en formant un modèle Pytorch. Il économisera un point de contrôle du modèle chaque fois que la perte de validation diminuait. Nous avons défini l'argument de patience dans la classe EarlyStopping du nombre d'époches que nous voulons attendre après la dernière fois que la perte de validation s'est améliorée avant de briser la boucle de formation. Il existe un exemple simple de la façon d'utiliser la classe EarlyStopping dans le cahier mnist_early_stopping_example.
En dessous se trouve un intrigue de l'exemple de carnet, qui montre le dernier point de contrôle fait par l'objet en début de pas, juste avant le début du modèle à surfiance. Il avait de la patience à 20.
pip install early-stopping-pytorchPour le développement ou si vous voulez les derniers changements inédits:
git clone https://github.com/your_username/early-stopping-pytorch.git
cd early-stopping-pytorchExécutez le script de configuration pour créer un environnement virtuel et installez toutes les dépendances nécessaires.
./setup_dev_env.shActivez l'environnement virtuel:
source dev-venv/bin/activateInstallez le package localement en mode modifiable afin que vous puissiez l'utiliser immédiatement:
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" )
breakPour un exemple complet, consultez l'exemple de carnet de l'arrêt anticipé de MNIST.
Si vous trouvez ce package utile dans vos recherches, veuillez envisager de le citer comme:
@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 } ,
} La classe EarlyStopping dans early_stopping_pytorch/early_stopping.py est inspirée par la classe Ignite Earlystopping.