في المشروع ده استخدمت تقنية التعلُّم بالنقل (Transfer Learning) لتصنيف صور الحيوانات (قطط وكلاب) من مجلد الصور PetImages.
الفكرة إن بدل ما أبدأ تدريب نموذج من الصفر، استخدمت نموذج جاهز ومتدرّب مسبقًا اسمه ResNet50، ودربت عليه جزء صغير من البيانات علشان أستفيد من خبرته السابقة في التعرف على الصور.
الخطوات كانت كالتالي:
تحميل البيانات:
استخدمت دالة image_dataset_from_directory لتحميل الصور من مجلد PetImages.
قسمت البيانات إلى 80% تدريب و20% اختبار.
غيرت حجم الصور إلى 224×224 بكسل، وهو الحجم اللي يناسب شبكة ResNet50.
استخدمت batch size = 128 علشان التدريب يكون أسرع وأكفأ.
بناء النموذج:
أضفت طبقة ResNet50 من Keras مع include_top=False علشان أستخدمها كمستخرج للخصائص فقط (بدون الطبقة الأخيرة الأصلية).
بعد كده أضفت طبقة Dense(2, activation='softmax') علشان النموذج يقدر يفرّق بين فئتين: كلب أو قطة.
جمدت طبقات ResNet50 (trainable=False) علشان ما تتغيرش أثناء التدريب وأستفيد من أوزانها الجاهزة.
إعداد التدريب:
استخدمت AdamW optimizer لتحسين سرعة التدريب وتجنّب الـ overfitting.
اخترت دالة خسارة sparse_categorical_crossentropy لأنها مناسبة لتصنيف الفئات الرقمية (0 و1).
قست الأداء باستخدام accuracy كمقياس أساسي