조기 정지는 훈련 데이터 세트에서 과적으로 적합하지 않도록 사용되는 정규화 형태입니다. 조기 정지는 유효성 검사 손실을 추적합니다. 손실이 여러 에피치의 손실이 줄어들면 훈련이 중지됩니다. early_stopping_pytorch/early_stopping.py 의 EarlyStopping 클래스는 Pytorch 모델을 훈련하는 동안 유효성 검사 손실을 추적하는 객체를 만드는 데 사용됩니다. 유효성 검사 손실이 감소 할 때마다 모델의 체크 포인트를 저장합니다. 우리는 EarlyStopping 클래스에서 patience 논쟁을 훈련 루프를 깨뜨리기 전에 마지막으로 검증 손실이 개선 된 후 기다릴 수있는 시대의 수에 대해 설정했습니다. mnist_early_stopping_example 노트북에서 EarlyStopping 클래스를 사용하는 방법에 대한 간단한 예가 있습니다.
그 아래에는 모델 노트북의 줄거리가 있으며, 이는 모델이 오버 피트를 시작하기 직전에 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 Early Stopping Example 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 } ,
} early_stopping_pytorch/early_stopping.py 의 EarlyStopping 클래스는 Ignite EarlyStopping 클래스에서 영감을 받았습니다.