یکی از مسائل مهمی که در پروژههای یادگیری ماشین و به طور کلی دیتاساینس وجود داره ساختار پروژه است. اینکه چطوری مدلها، کدها، گزارشات، پیشپردازشها، استخراج ویژگیها و… رو به صورت مرتب و یکجا به کمک ابزاری مثل گیت مدیریت کنیم. در قسمتهای قبلی دیدیم که چطور میشه به صورت شیگرا در تنسورفلو کد زد. در این پست میخوام صرفا میخوام یک ابزار (بیشتر یک ساختار) رو معرفی کنم که بهتون در مدلهای بزرگ خیلی کمک خواهد کرد. علاوه بر کمک به خودتون به دیگران که میخوان کدتون رو بخونن و یاد بگیرین کمک بزرگی میکنید و به راحتی میتونن ساختار پروژهاتون رو درک کنند.
یک ابزار معروف که برای ساختار پروژه در دیتاساینس وجود دارد Cookiecutter (کوکی کاتر) است. بعد از مدتی شاید حتی لازم ندونید از این ابزار استفاده کنید ولی برای شروع شاید بد نباشه که ازش استفاده کنید تا از خرابکارهای احتمالی جلوگیری کنه. استفاده از این ابزار بسیار سرراست و در فیلمی که در سایتشون قرار دادند فرآیند کار توضیح داده شده است. چیزی که به نظرم اهمیت دارد و این ابزار به شما میدهد ساختار زیر است:
همانطور که در شکل بالا ملاحظه میکنید تمام چیزهایی که احتمالا در یک پروژه دیتاساینس لازم دارید در پکیجهای مختلف برای شما در نظر گرفته شده است.
فایلهای اصلی و متنی (txt، csv و…) را در فولدر data
داکیومنتها و اسکریپتهایی که برای اجرای پروژهتون لازمه در docs
مدلهایی که آموزش دادید (.h5، .keras ، checkpoint) را در فولدر models
نوتبوکها در فولدر notebooks
و کدهای اصلیتون هم در فولدر src قرار میدهید.
علاوه بر مزیتهای بالا خیلی راحت میتونید .gitignore رو کنترل کنید و از اضافه شدن فایلهاتون به گیت جلوگیری کنید. مثلا اگر خواستید فولدر data/raw به گیت اضافه نشه کافی است که ./data/raw به فایل gitignore اضافه کنید.
توضیحات بیشتر رو پیشنهاد میکنم در سایت اصلی بخونید. اگر شما هم ابزاری میشناسید که ساختار پروژه بهتر باهاش مدیریت میکنید خوشحال میشم با من به اشتراک بزارید.
اولین باشید که نظر می دهید