Deep Learning | یادگیری عمیق
عکس
👨🏻💻 همه از PyTorch استفاده میکنن، ولی فقط ۱٪ از مهندسهای ML و AI به شکل حرفهای ازش استفاده میکنن.
▶️ اینجا ۲۸ تا ترفند مهم و کاربردی رو لیست کردم که باعث میشن کارهات با PyTorch سریعتر، حرفهایتر، و بهینهتر اجرا بشن.
🔢 ترفندهای کار با تانسورها
دستور torch.einsum
⬅️ نوشتن محاسبات پیچیده با یک خط کد
دستور torch.as_strided
⬅️ ساختن ویوهای پیشرفته روی تنسور
دستور tensor.unfold
⬅️ ساختن ویو به صورت sliding window
دستور torch.roll
⬅️ شیفت دادن چرخشی
دستور In-place ops
⬅️ عملیات درجا و کممصرف از نظر حافظه – مثال: x.add(5)
➖ ➖ ➖
🔢 گرادیان و هوکها
دستور x.register_hook
⬅️ وصلکردن هوک به تنسور برای دیدن/دستکاری گرادیانها
دستور model.layer.register_forward_hook
⬅️ گرفتن activationهای هر لایه
دستور Custom autograd.Function
⬅️ تعریف forward و backward سفارشی برای autograd
➖ ➖ ➖
🔢 آموزش مدل
دستور loss.backward (با انباشت/accumulation)
⬅️ ساختن batchهای مجازی بزرگتر
دستور torch.cuda.amp.autocast
⬅️ اجرای mixed precision برای سرعت بیشتر و مصرف حافظه کمتر
دستور p.requires_grad = False
⬅️ فریز کردن لایهها (عدم محاسبهی گرادیان برای اون پارامتر)
دستور optimizer.zero_grad(set_to_none=True)
⬅️ ریست کردن سریعتر گرادیانها و کاهش ترافیک حافظه
➖ ➖ ➖
🔢 کار با داده
دستور torch.utils.data.Subset
⬅️ تکهتکه کردن دیتاست
دستور torch.utils.data.ConcatDataset
⬅️ ترکیب دیتاستها
دستور worker_init_fn
⬅️ مقداردهی اولیهی workerهای DataLoader
دستور pin_memory=True
⬅️ انتقال سریعتر دیتا از CPU به GPU (در CUDA)
➖ ➖ ➖
🔢 دیباگ و مانیتورینگ
دستور torch.autograd.set_detect_anomaly
⬅️ پیدا کردن NaN و خطاها در مرحلهی backward
دستور torch.cuda.empty_cache
⬅️ خالی کردن کش GPU
دستور torch.cuda.memory_summary
⬅️ گرفتن گزارش از وضعیت مصرف حافظهی GPU
➖ ➖ ➖
🔢 افزایش سرعت و عملکرد
دستور torch.compile
⬅️ برای اجرای سریعتر مدل
دستور torch.export
⬅️ آمادهسازی مدل برای دیپلوی/استقرار
دستور torch.utils.checkpoint.checkpoint
⬅️ کاهش مصرف حافظه هنگام آموزش مدلهای بزرگ.
دستور model.to(memory_format=torch.channels_last)
⬅️ سریعتر کردن ConvNetها روی GPU با تغییر memory format
دستور torch.vmap
⬅️ اجرای توابع به شکل برداری و سریعتر.
➖ ➖ ➖
🔢 ابزارهای کاربردی و تکرارپذیری
دستور torch.manual_seed
⬅️ ست کردن seed تصادفی برای CPU
دستور torch.cuda.manual_seed_all
⬅️ ست کردن seed تصادفی برای همهی GPUها
دستور torch.use_deterministic_algorithms(True)
⬅️ استفاده از الگوریتمهای کاملاً قابلتکرار
دستور torch.inference_mode
⬅️ ارزیابی سریعتر از no_grad
🖼 PyTorch Power Hacks
🌐 #یادگیری_عمیق #DeepLearning
➖➖➖➖➖➖➖➖➖➖➖➖➖➖
🧠 مهندس یادگیری عمیق شوید :
🧠 @DeepLearning_fa
85 · 4.5K ·