Ранняя остановка - это форма регуляризации, используемая для того, чтобы избежать переживания на наборе учебных данных. Ранняя остановка отслеживает потерю валидации, если потеря останавливает уменьшение в течение нескольких эпох подряд, тренировочные остановки останавливаются. EarlyStopping класс в early_stopping_pytorch/early_stopping.py используется для создания объекта для отслеживания потери проверки при обучении модели Pytorch. Он будет сэкономить контрольную точку модели каждый раз, когда потери проверки уменьшаются. Мы установили аргумент patience в EarlyStopping классе, сколько эпох мы хотим подождать после последнего разбора, прежде чем утратить потерю проверки, прежде чем нарушить петлю обучения. Существует простой пример того, как использовать EarlyStopping класс в ноутбуке mnist_early_stopping_example.
Внизу находится сюжет из примера ноутбука, который показывает последнюю контрольную точку, сделанную ранним объектом, прямо перед тем, как модель начала переполняться. У него было терпение, установившее 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 Range Stopping Notebook.
Если вы найдете этот пакет полезным в своем исследовании, рассмотрите возможность ссылаться на него как:
@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 } ,
} EarlyStopping класс в early_stopping_pytorch/early_stopping.py вдохновлен начальным классом.