اذهب إلى المحتوى

السؤال

نشر

 انا منزل بيانات من موقع Kaggle فا البيانات ده عباره عن ملف في صور رجل وملف تاني في صور نساء عشان ان عاوز اعمل نموذج يعرف انوع الجنس من خلال الصور فا البيانات ده كده عبار عن مُسماة labeled تمام كده 

بس في سوال كمان اوالان البيانات ده عبار عن صور فا ازي الخورزميا هننعرف علها يعني هي عكس مثل بيانات لمرض القلب يعني فيه  featureوكمان output ؟

فا هنا هساخدمها ازي في classification والا ده بيستخدم فقط مع الشبكات العصبيه مع العلم ان لسه هستدرس الشكبات العصبيه انا عاوز افهم الجزاي ده 

Recommended Posts

  • 0
نشر

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

وطالما أنك قمت بتحميل الـ Data set من Kaggle إذن تلك البيانات Labeled، 

وتتوفر عدة طرق ونماذج يمكن استخدامها لتصنيف الصور واستخراج الـ features، لكن أشهرها وأكثرها فعالية هي الشبكات العصبية العميقة (Deep Neural Networks)، وخاصة الشبكات العصبية التلافيفية (Convolutional Neural Networks - CNNs) التي تُستخدم بكثرة في تحليل الصور.

وتحتاج إلى تجهيز البيانات قبل إدخالها في النموذج، وذلك يتضمن:

  • تغيير حجم الصور بحيث تكون كلها بنفس الأبعاد.
  • تطبيع الصور (Normalization) لتسريع عملية التدريب.
  • تقسيم البيانات إلى مجموعات تدريب وتحقق validation واختبار.

ولو تستخدم الشبكات العصبية التلافيفية (CNNs)، فتستطيع استخدام مكتبات مثل TensorFlow أو PyTorch لبناء النموذج.

للتوضيح إليك مثال مبسط لبناء نموذج CNN باستخدام Keras (واجهة برمجية لـ TensorFlow):

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense

model = Sequential([
    Conv2D(32, (3, 3), activation='relu', input_shape=(height, width, channels)),
    MaxPooling2D((2, 2)),
    Conv2D(64, (3, 3), activation='relu'),
    MaxPooling2D((2, 2)),
    Flatten(),
    Dense(128, activation='relu'),
    Dense(1, activation='sigmoid')  # لأن لديك فئتين فقط: رجل أو امرأة
])

model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])

وتستطيع تدريب النموذج باستخدام بيانات التدريب:

model.fit(train_images, train_labels, epochs=10, validation_data=(validation_images, validation_labels))

بعد التدريب، بإمكانك تقييم النموذج باستخدام بيانات الاختبار:

test_loss, test_acc = model.evaluate(test_images, test_labels)
print(f'Test accuracy: {test_acc}')

وللعلم، بدلاً من البدء من الصفر تستطيع استخدام نموذج مُدرب بالفعل والبناء عليه مثل VGG16 و ResNet50 وهي شبكات عصبية ضخمة تم تدريبها على ملايين الصور لتمييز آلاف الأشياء (حيوانات، سيارات، أشكال، ألوان، ...إلخ)، وتلك الشبكات أصبحت خبيرة في استخراج الـ Features الهامة من الصور.

أي نزيل الطبقات الأخيرة المسؤولة عن التصنيف النهائي، ونحتفظ بالطبقات الأولى التي تعلمت استخراج الـ Features الهامة من الصور.

  • 0
نشر
بتاريخ 16 ساعة قال Mustafa Suleiman:

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

وطالما أنك قمت بتحميل الـ Data set من Kaggle إذن تلك البيانات Labeled، 

وتتوفر عدة طرق ونماذج يمكن استخدامها لتصنيف الصور واستخراج الـ features، لكن أشهرها وأكثرها فعالية هي الشبكات العصبية العميقة (Deep Neural Networks)، وخاصة الشبكات العصبية التلافيفية (Convolutional Neural Networks - CNNs) التي تُستخدم بكثرة في تحليل الصور.

وتحتاج إلى تجهيز البيانات قبل إدخالها في النموذج، وذلك يتضمن:

  • تغيير حجم الصور بحيث تكون كلها بنفس الأبعاد.
  • تطبيع الصور (Normalization) لتسريع عملية التدريب.
  • تقسيم البيانات إلى مجموعات تدريب وتحقق validation واختبار.

ولو تستخدم الشبكات العصبية التلافيفية (CNNs)، فتستطيع استخدام مكتبات مثل TensorFlow أو PyTorch لبناء النموذج.

للتوضيح إليك مثال مبسط لبناء نموذج CNN باستخدام Keras (واجهة برمجية لـ TensorFlow):

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense

model = Sequential([
    Conv2D(32, (3, 3), activation='relu', input_shape=(height, width, channels)),
    MaxPooling2D((2, 2)),
    Conv2D(64, (3, 3), activation='relu'),
    MaxPooling2D((2, 2)),
    Flatten(),
    Dense(128, activation='relu'),
    Dense(1, activation='sigmoid')  # لأن لديك فئتين فقط: رجل أو امرأة
])

model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])

وتستطيع تدريب النموذج باستخدام بيانات التدريب:

model.fit(train_images, train_labels, epochs=10, validation_data=(validation_images, validation_labels))

بعد التدريب، بإمكانك تقييم النموذج باستخدام بيانات الاختبار:

test_loss, test_acc = model.evaluate(test_images, test_labels)
print(f'Test accuracy: {test_acc}')

وللعلم، بدلاً من البدء من الصفر تستطيع استخدام نموذج مُدرب بالفعل والبناء عليه مثل VGG16 و ResNet50 وهي شبكات عصبية ضخمة تم تدريبها على ملايين الصور لتمييز آلاف الأشياء (حيوانات، سيارات، أشكال، ألوان، ...إلخ)، وتلك الشبكات أصبحت خبيرة في استخراج الـ Features الهامة من الصور.

أي نزيل الطبقات الأخيرة المسؤولة عن التصنيف النهائي، ونحتفظ بالطبقات الأولى التي تعلمت استخراج الـ Features الهامة من الصور.

اتمام الف شكرا لحضراتك

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...