Deep Learning | یادگیری عمیق
عکس
💯 با این ترفند سرعت آموزش مدلت تو PyTorch رو تا ۵ برابر بیشتر کن!
👨🏻💻 من همیشه میدیدم موقع آموزش، GPU اونقدری که باید درگیر نیست و یه جورایی نصفهنیمه کار میکنه. بعد فهمیدم مشکل از خود DataLoaderئه. تنظیمات پیشفرضش باعث میشه CPU و GPU نوبتی کار کنن، نه همزمان.
✏️ وقتی من داده رو با .to(device) میفرستم روی GPU ،CPU منتظر میمونه و کارش میخوابه. بعدش وقتی CPU داره batch بعدی رو آماده میکنه، GPU عملاً بیکاره و کاری انجام نمیده. نتیجهاش یه عالمه زمان که میره توی idle time و سرعت آموزش بیخودی میاد پایین.
▶️ راهحلش خیلی سادهست ولی تاثیرش وحشتناک عالیه:
🔹 توی DataLoader اینو فعال کن: pin_memory=True
🔹 موقع انتقال داده به GPU اینو بزن: .to(device, non_blocking=True)
🔹 و یه num_workers مناسب بذار تا DataLoader بتونه داده رو توی پسزمینه لود کنه.
⬅️ بعد از این تنظیمات، اتفاقی که میافته اینه: CPU همزمان که GPU داره batch فعلی رو پردازش میکنه، batch بعدی رو آماده میکنه. یعنی دیگه هیچکدوم منتظر اون یکی نمیمونن و هر دو با هم کار میکنن.
📂 Faster Training with Memory Pinning
🌐 #یادگیری_عمیق #DeepLearning
➖➖➖➖➖➖➖➖➖➖➖➖➖➖
🧠 مهندس یادگیری عمیق شوید :
🧠 @DeepLearning_fa
73 · 3.2K ·