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

السؤال

Recommended Posts

  • 0
نشر

وعليكم السلام ورحمة الله تعالى وبركاته،

عند تقسيم بيانات الصور لتدريب نموذج تعلم آلي، تكون العملية بسيطة جدا لأنّ الدالة train_test_split() مصممة للتعامل مع المصفوفات متعددة الأبعاد، مما يعني أنها تعمل بشكل مثالي مع مجموعات بيانات الصور.

هذه الدالة تأخذ مجموعة الصور بالكامل وتقوم بتقسيمها عشوائيا إلى مجموعتين:

  • مجموعة للتدريب
  • وأخرى للاختبار.

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

كما يمكنك التحكم في نسبة البيانات المخصصة للاختبار عن طريق تحديد النسبة المئوية التي تريد استخدامها.

عادة نقوم بتخصيص حوالي 20% من البيانات للاختبار بينما نستخدم 80% منها للتدريب كما يمكن تعيين random seed مما يتيح الحصول على نفس التقسيم العشوائي في كل مرة تقوم بتشغيل الكود، وهذا مفيد لضمان تكرار النتائج في تجارب التعلم الآلي.

التقسيم يكون عشوائيا تماما، لكنه يضمن أن تكون مجموعتا التدريب والاختبار ممثلتين بشكل جيد لمجموعة البيانات الكاملة وهذا سيساعد على إنشاء نموذج تعلم آلي أكثر دقة حيث يتم اختباره على بيانات لم يسبق له رؤيتها أثناء التدريب.

  • 0
نشر

وعليكم السلام ورحمة الله وبركاته.

نعم بالطبع يمكنك استخدام sklearn.model_selection.train_test_split لتقسيم البيانات من نوع صور إلى بيانات تدريب وبيانات اختبار ولكن يجب أن تكون لديك البيانات بشكل مناسب أولا.

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

والصور غالبا ما تكون 4D array إذا كانت ملونة (num_samples, height, width, channels).

وإليك المثال التالي :

import numpy as np
from sklearn.model_selection import train_test_split
from PIL import Image
import os

#  الصور في مجلد "images"
image_folder = 'path/to/images'

# تحميل الصور وتحويلها إلى مصفوفات
images = []

for filename in os.listdir(image_folder):
    if filename.endswith(".jpg") or filename.endswith(".png"):
        img_path = os.path.join(image_folder, filename)
        img = Image.open(img_path)
        img = img.resize((128, 128))  # تغيير حجم الصورة لتوحيد الأبعاد
        img_array = np.array(img)
        images.append(img_array)
         
# تحويل الصور إلى مصفوفة numpy
images = np.array(images)

# تقسيم البيانات إلى تدريب واختبار
X_train, X_test, y_train, y_test = train_test_split(images, test_size=0.2, random_state=42)

 

  • 0
نشر

تمام جدا جدا

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

جزاكم الله كل خير

بتاريخ 8 دقائق مضت قال محمد عاطف17:

وعليكم السلام ورحمة الله وبركاته.

نعم بالطبع يمكنك استخدام sklearn.model_selection.train_test_split لتقسيم البيانات من نوع صور إلى بيانات تدريب وبيانات اختبار ولكن يجب أن تكون لديك البيانات بشكل مناسب أولا.

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

والصور غالبا ما تكون 4D array إذا كانت ملونة (num_samples, height, width, channels).

وإليك المثال التالي :

import numpy as np
from sklearn.model_selection import train_test_split
from PIL import Image
import os

#  الصور في مجلد "images"
image_folder = 'path/to/images'

# تحميل الصور وتحويلها إلى مصفوفات
images = []

for filename in os.listdir(image_folder):
    if filename.endswith(".jpg") or filename.endswith(".png"):
        img_path = os.path.join(image_folder, filename)
        img = Image.open(img_path)
        img = img.resize((128, 128))  # تغيير حجم الصورة لتوحيد الأبعاد
        img_array = np.array(img)
        images.append(img_array)
         
# تحويل الصور إلى مصفوفة numpy
images = np.array(images)

# تقسيم البيانات إلى تدريب واختبار
X_train, X_test, y_train, y_test = train_test_split(images, test_size=0.2, random_state=42)

 

شكراا جدا يا أ.محمد علي المثال عشان كان عندي خطاء في الكود فا الشكر اجدا لحضرتط

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...