برمجة شبكة عصبية التفافية قادرة على التعرف على صور الأرقام

المؤلف: عمر الصنهاجي الغازي *
*مهندس في المعلوميات و الرياضيات التطبيقية، مدير مشاريع و مهتم بميدان الذكاء الاصطناعي و سلاسل الكتل
صفحة لنكد إن

آخر تحديث: Aug. 28, 2023, 1:06 p.m.

سوف نرى في هذا المقال كيف نبرمج شبكة عصبية التفافية Convolutional Neural Network قادرة على التعرف على صور الأرقام المكتوبة بخط اليد، عن طريق بيثون و مكتبات كيراس Keras و تنسر فلوو Tensor Flow



الحمد لله و الصلاة و السلام على سيدنا رسول الله و على آله و صحبه و من والاه
نقترح عليكم البدأ بقراءة هذا المقال أولا من أجل الإحاطة بالمفاهيم العامة للشبكات العصبية الالتفافية، قبل الدخول في تفاصيل البرمجة :
مدخل إلى الشبكات العصبية الالتفافية

نقترح برمجة هذا المثال باستعمال جوبيتر نوتبوكس Jupyter Notebooks، الذي يمكننا من تنفيذ برامج بيثون مباشرة على متصفح الويب
مكتبات يجب تثبيتها قبل الشروع في برمجة هذا المثال: بيثون Python نسخة 3.9
مكتبة PIP
Pip install tensorflow
Pip install Keras
Pip install matplotlib
Pip install jupyterlab

نبدأ ببرمجة المثال بعون الله:

أولا نقوم باستيراد المكتبات التي سنحتاجها:


ثانيا نقوم بشحن بيانات التدريب و بيانات الاختبار من مكتبة التدريب الشهيرة MNIST التي تحتوي على 60000 رقم مكتوب بخط اليد، و نقوم بتحويلها إلى الأبعاد المناسبة التي نحتاجها في الشبكة العصبية


x_train shape: (60000, 28, 28, 1)
60000 train samples
10000 test samples

ثالثا، نقوم ببناء نموذج الشبكة العصبية على الشكل التالي:



تتكون الشبكات الالتفافية بشكل عام من طبقة دخول، و طبقتي التفاف و تجميع تليهما طبقة تفعيل، إضافة إلى طبقة تسطيح، و طبقة ربط كامل.



طبقة التسريب Dropout هي طبقة تقوم بتصفير نصف معاملات الدخول بطريقة عشوائية في كل تدريب من أجل تفادي الضبط الزائد Overfitting





نقوم الآن بتدريب الشبكة العصبية الاتفافية، باختيار دفعة بحجم 128 صورة للتدريب في كل حقبة، لمدة 3 أحقاب





و أخيرا، نقوم الآن بإجراء الاختبارات: نأخذ مثلا الصورة رقم 2000 الموجودة في لائحة صور الاختبار،


نجد أنها صورة للرقم 6، و الشبكة العصبية تعرفت عليها بنجاح !




يمكنكم تحميل مصدر البرنامج بالبيثون على الرابط التالي:
مصدر البرنامج (.py)


نتمنى أن يكون المقال نال إعجابكم، و إلى مقال آخر بإذن الله


مصادر المقال:
Keras Mnist Convnet

الرجوع إلى الصفحة الرئيسية