پایتورچ لایتنینگ!

یکی از مزایای کراس به پایتورچ در این است که حلقه یادگیری در آن وجود ندارد به عبارت دیگر شما از یک تابع fit استفاده می کنید و فقط داده ها را به آن پاس می دهید اما در پایتورچ شما مجبورید یک حلقه فور بنویسید و گرادیان ها را صفر کنید داده ها را پاس بدهید و خیلی از کارهای دیگر را به صورت دستی انجام دهید. اما خوشبختانه برای حل این مشکل کتابخانه های کمکی زیادی وجود دارند که مهم ترین آن ها PyTorch lightning است. این کتابخانه کد شما را بسیار ساده می کند و در عین حال امکانات بسیار زیادی را در اختیار شما می گذارد که در حالت عادی ممکن است وقت زیادی از شما بگیرد. به طور مثال:


۱- به شما امکان می دهد که مدل تان را یک بار بر روی آموزش و ولیدیشن تست کنید و مطمین شوید که همه چیز درست کار می کند قبل از اینکه یک ترین بسیار طولانی بگذارید و بعد از چند روز متوجه شوید ولیدیشن تان مشکل داشت. (‌با استفاده از fast_dev_run=True)


۲- لایتنینگ به شما امکان می دهد که آموزش را بر روی یک درصد دلخواه از دیتا ست آموزش دهید تا باز هم از همه چیز مطمین شوید.


۳- لایتنینگ خودش حواسش به اجرا کردن همه چیز بر روی سی پی یو یا gpuهست کافی است فقط به آن پاس بدهید که می خواهید از gpuاستفاده کنید یا چند تا از gpuها و خودش حتی به صورت درست آن ها رو توزیع می کند!!


۴- لایتنینگ مستقیما به tensorboard (یا wandb یا هر تکنولوژی دیگری)‌ متصل است و همه چیز را برای شما لاگ می کند. می توانید نمودار ها را براحتی ببینید بدون اینکه نگران تنظیمات خاصی باشید. فقط کافی است logger را فراخوانی کنید و عکس، صدا یا نموداری که می خواهید را به آن پاس بدهید تا لاگ کند.


۵- محاسبات ۱۶ بیتی را می توانید بدون فراخوانی apex انجام دهید که سرعت را بالاتر می برد


در اینجا یک ریپو بر اساس ویدیوی زیر ساخته ام که می توانید استفاده کنید.