การหยุดเร็วเป็นรูปแบบของการทำให้เป็นมาตรฐานที่ใช้เพื่อหลีกเลี่ยงการใช้งานมากเกินไปในชุดข้อมูลการฝึกอบรม การหยุดเร็ว ๆ นี้ติดตามการสูญเสียการตรวจสอบความถูกต้องหากการสูญเสียหยุดลดลงสำหรับยุคหลายครั้งติดต่อกันการฝึกซ้อมหยุด คลาส EarlyStopping ใน early_stopping_pytorch/early_stopping.py ใช้เพื่อสร้างวัตถุเพื่อติดตามการสูญเสียการตรวจสอบในขณะที่ฝึกอบรมโมเดล pytorch มันจะบันทึกจุดตรวจสอบของโมเดลในแต่ละครั้งที่การสูญเสียการตรวจสอบลดลง เราตั้งค่าอาร์กิวเมนต์ patience ในชั้น EarlyStopping กำหนดจำนวนยุคที่เราต้องการรอหลังจากครั้งสุดท้ายที่การสูญเสียการตรวจสอบความถูกต้องดีขึ้นก่อนที่จะทำลายวงฝึกซ้อม มีตัวอย่างง่ายๆเกี่ยวกับวิธีการใช้คลาส EarlyStopping ในสมุดบันทึก MNIST_EARLY_STOPPED_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 ก่อนกำหนด