قمتُ بتطوير شبكة عصبية التفافية (CNN) باستخدام مكتبة PyTorch لتصنيف صور الأرقام المكتوبة يدويًا من قاعدة بيانات MNIST.
خطوات التنفيذ:
تحميل البيانات:
استخدمت مكتبة torchvision.datasets لتحميل بيانات MNIST.
البيانات اتقسمت إلى train set و test set مع تحويل الصور إلى Tensor.
بناء نموذج CNN:
النموذج يتكون من:
طبقتين Convolution + MaxPooling.
ثلاث طبقات Fully Connected.
استخدمت دالة التفعيل ReLU.
الطبقة الأخيرة بتخرج 10 نودز (تمثل الأرقام من 0 لـ 9).
التدريب:
استخدمت CrossEntropyLoss كـ loss function.
الاعتماد على SGD optimizer مع learning rate = 0.001 و momentum = 0.9.
النموذج تم تدريبه على 3 epochs.
الاختبار والتقييم:
بعد التدريب، اختبرت النموذج على بيانات الاختبار.
جمعت التنبؤات وقارنتها بالقيم الحقيقية.
استخدمت مكتبة scikit-learn لحساب مؤشرات الأداء:
Accuracy
Recall
F1-score
Precision
النتائج:
النموذج أظهر دقة عالية في تصنيف الأرقام.
تم حساب مؤشرات الأداء وعرضها بشكل منظم.