البرمجة

تدريب نموذج شبكة عصبونية لتصنيف الأرقام المكتوبة بخط اليد

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

أولاً، يجب تحويل الصور إلى تنسيق يمكن للبرنامج أن يفهمه، مثل صور ذات تنسيق JPEG أو PNG. يمكنك استخدام مكتبة معالجة الصور في Python مثل OpenCV أو PIL لتنفيذ ذلك. بمجرد تحويل الصور، يمكنك حفظها في مجلدات تحتوي على فئات مختلفة تمثل الأرقام المكتوبة بخط اليد.

ثانياً، يجب تسمية كل صورة بشكل صحيح وتنظيمها في تنسيق يسهل قراءته. على سبيل المثال، يمكنك تخزين كل صورة في مجلد يحمل اسم الفئة التي تنتمي إليها، وتسمية كل صورة برقم فريد يمثل الفئة.

ثالثاً، بعد تنظيم الصور في مجلدات وتسميتها بشكل صحيح، يمكنك استخدام مكتبة Keras لتحميل هذه البيانات. يمكنك استخدام واجهة ImageDataGenerator في Keras لتحميل البيانات من المجلدات المنظمة وتحويلها إلى تنسيق يمكن للنموذج العمل عليه.

إليك خطوات مبسطة لتحقيق هذا الهدف:

  1. قم بتحويل الصور إلى تنسيق قابل للقراءة بواسطة البرنامج باستخدام مكتبة معالجة الصور مثل OpenCV أو PIL.
  2. نظم الصور في مجلدات تحمل اسماء الفئات وتسمي كل صورة بشكل فريد يمثل الفئة التي تنتمي إليها.
  3. استخدم ImageDataGenerator في Keras لتحميل البيانات من المجلدات المنظمة وتحويلها إلى تنسيق يمكن للنموذج العمل عليه.

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

المزيد من المعلومات

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

أولاً، قم بتثبيت المكتبات اللازمة، بما في ذلك Keras وأي مكتبات معالجة الصور التي قد تحتاجها، مثل OpenCV أو PIL. يمكنك تثبيتها باستخدام مدير الحزم pip في Python:

bash
pip install keras opencv-python

الآن يمكنك كتابة الكود لتحميل البيانات وتدريب النموذج. إليك مثالًا على كيفية القيام بذلك:

python
import numpy as np from keras.preprocessing.image import ImageDataGenerator from keras.models import Sequential from keras.layers import Conv2D, MaxPooling2D, Flatten, Dense # تعريف مولد البيانات train_datagen = ImageDataGenerator(rescale=1./255) # تقليل مقياس القيم إلى ما بين 0 و 1 # تحميل البيانات من المجلدات وتحويلها إلى تنسيق يمكن للنموذج العمل عليه train_generator = train_datagen.flow_from_directory( 'path_to_training_directory', target_size=(28, 28), # حجم الصور المطلوب (مثل حجم الصور في مجموعة البيانات MNIST) batch_size=32, class_mode='categorical') # لأنه يتعين علينا تحديد فئات الصور بشكل واضح # تعريف النموذج العصبي model = Sequential() model.add(Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 3))) model.add(MaxPooling2D((2, 2))) model.add(Conv2D(64, (3, 3), activation='relu')) model.add(MaxPooling2D((2, 2))) model.add(Conv2D(64, (3, 3), activation='relu')) model.add(Flatten()) model.add(Dense(64, activation='relu')) model.add(Dense(10, activation='softmax')) # 10 فئات تمثل الأرقام من 0 إلى 9 # تجميع النموذج model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy']) # تدريب النموذج model.fit( train_generator, steps_per_epoch=2000 // 32, # عدد الصور في مجموعة البيانات / حجم الدفعة epochs=10)

يرجى استبدال 'path_to_training_directory' بالمسار الذي تم تخزين مجلدات البيانات فيه. كما يمكنك ضبط حجم الدفعة وعدد الحقول حسب احتياجاتك.

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

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر