💯 با این ترفند سرعت آموزش مدلت تو 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
6