Perhentian awal adalah bentuk regularisasi yang digunakan untuk menghindari overfitting pada dataset pelatihan. Perhentian awal melacak kehilangan validasi, jika kerugian berhenti berkurang untuk beberapa zaman berturut -turut, pelatihan berhenti. Kelas EarlyStopping di early_stopping_pytorch/early_stopping.py digunakan untuk membuat objek untuk melacak kehilangan validasi saat melatih model pytorch. Ini akan menyimpan pos pemeriksaan model setiap kali penurunan kerugian validasi. Kami menetapkan argumen patience di kelas EarlyStopping untuk berapa banyak zaman yang ingin kami tunggu setelah terakhir kali kehilangan validasi membaik sebelum melanggar lingkaran pelatihan. Ada contoh sederhana tentang cara menggunakan kelas EarlyStopping di mnist_early_stopping_example notebook.
Di bawahnya ada plot dari contoh notebook, yang menunjukkan pos pemeriksaan terakhir yang dibuat oleh objek awal, tepat sebelum model mulai overfit. Itu memiliki kesabaran yang ditetapkan ke 20.
pip install early-stopping-pytorchUntuk pengembangan atau jika Anda menginginkan perubahan terbaru yang belum dirilis:
git clone https://github.com/your_username/early-stopping-pytorch.git
cd early-stopping-pytorchJalankan skrip pengaturan untuk membuat lingkungan virtual dan menginstal semua dependensi yang diperlukan.
./setup_dev_env.shAktifkan lingkungan virtual:
source dev-venv/bin/activateInstal paket secara lokal dalam mode yang dapat diedit sehingga Anda dapat segera menggunakannya:
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" )
breakSebagai contoh yang lengkap, lihat MNIST Contoh Notebook Stopping Early.
Jika Anda menemukan paket ini berguna dalam riset Anda, harap pertimbangkan mengutipnya sebagai:
@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 } ,
} Kelas EarlyStopping di early_stopping_pytorch/early_stopping.py terinspirasi oleh kelas awal Ignite.