La detención temprana es una forma de regularización utilizada para evitar el sobreajuste en el conjunto de datos de capacitación. La detención temprana realiza un seguimiento de la pérdida de validación, si la pérdida deja de disminuir para varias épocas seguidas, el entrenamiento se detiene. La clase EarlyStopping en early_stopping_pytorch/early_stopping.py se usa para crear un objeto para realizar un seguimiento de la pérdida de validación mientras entrenaba un modelo Pytorch. Guardará un punto de control del modelo cada vez que disminuya la pérdida de validación. Establecimos el argumento de patience en la clase EarlyStopping a cuántas épocas queremos esperar después de la última vez que la pérdida de validación mejoró antes de romper el ciclo de entrenamiento. Hay un ejemplo simple de cómo usar la clase EarlyStopping en el cuaderno mnist_early_stopping_example.
Debajo hay una trama del cuaderno de ejemplo, que muestra el último punto de control realizado por el objeto inicial, justo antes de que el modelo comience a superarse. Tenía paciencia establecida en 20.
pip install early-stopping-pytorchPara el desarrollo o si desea los últimos cambios inéditos:
git clone https://github.com/your_username/early-stopping-pytorch.git
cd early-stopping-pytorchEjecute el script de configuración para crear un entorno virtual e instalar todas las dependencias necesarias.
./setup_dev_env.shActive el entorno virtual:
source dev-venv/bin/activateInstale el paquete localmente en modo editable para que pueda usarlo de inmediato:
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" )
breakPara obtener un ejemplo completo, consulte el cuaderno de ejemplo de detención temprana de MNIST.
Si encuentra este paquete útil en su investigación, considere citarlo como:
@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 clase EarlyStopping en early_stopping_pytorch/early_stopping.py está inspirada en la clase Ignite Earlystopping.