التوقف المبكر هو شكل من أشكال التنظيم المستخدم لتجنب الإضافات في مجموعة بيانات التدريب. التوقف المبكر يتتبع خسارة التحقق من الصحة ، إذا توقفت الخسارة عن انخفاض لعدة عصر على التوالي ، يتوقف التدريب. يتم استخدام فئة EarlyStopping في early_stopping_pytorch/early_stopping.py لإنشاء كائن لتتبع خسارة التحقق من الصحة أثناء تدريب نموذج pytorch. سيوفر نقطة تفتيش للنموذج في كل مرة تنخفض فيها فقدان التحقق من الصحة. لقد وضعنا حجة patience في فئة EarlyStopping على عدد الأحداث التي نريد الانتظار بعد آخر مرة تحسنت فيها خسارة التحقق من الصحة قبل كسر حلقة التدريب. هناك مثال بسيط على كيفية استخدام فئة EarlyStopping في دفتر Notebook 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.
إذا وجدت هذه الحزمة مفيدة في بحثك ، فيرجى التفكير في ذلك على أنها:
@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 مستوحاة من فئة Ignite في وقت مبكر.