Ali Ahmed55 نشر 27 مارس أرسل تقرير نشر 27 مارس (معدل) السلام عليكم هو فيه قاعد بيانات دي /kaggle/input/microsoft-catsvsdogs-dataset الlabels بيكون موجود فين انا مش شايف غير images بس ؟ عشان انا عاوز اعمل تصنيف الصور تم التعديل في 27 مارس بواسطة Ali Ahmed55 3 اقتباس
0 Mustafa Suleiman نشر 27 مارس أرسل تقرير نشر 27 مارس التسميات ليست موجودة في ملف منفصل، ولكنها مُضمَّنة مباشرة في أسماء ملفات الصور نفسها. افحص أسماء الملفات، وستجد أن أسماء الصور والملجدات تتبع نمطاً معيناً: cat.0.jpg, cat.1234.jpg dog.567.jpg, dog.9999.jpg بالتالي لو اسم الملف يبدأ بـ cat، فهذه صورة لقطة، ونفس الأمر يبدأ بـ dog، فتلك صورة لكلب، نفس الأمر للمجلدات. ستجد هيكل مجلد مجموعة البيانات كالتالي: data/ train/ dogs/ dog001.jpg dog002.jpg ... cats/ cat001.jpg cat002.jpg ... validation/ dogs/ dog001.jpg dog002.jpg ... cats/ cat001.jpg cat002.jpg ... تفقد المستودع: https://github.com/darshanbagul/Cats-vs-Dogs 1 اقتباس
0 ياسر مسكين نشر 27 مارس أرسل تقرير نشر 27 مارس وعليكم السلام ورحمة الله تعالى وبركاته، لا يوجد قاعدة بيانات منفصلة للتسميات في المسار /kaggle/input/microsoft-catsvsdogs-dataset، بل يتم تخزين التسميات ضمن بنية المجلدات وعند استخدام الدالة flow_from_directory() في Keras، يتم تعيين التسميات تلقائيًا استنادًا إلى أسماء المجلدات الفرعية فيما يلي الكود الأساسي الذي يوضح ذلك: from keras.preprocessing.image import ImageDataGenerator train_datagen = ImageDataGenerator(rescale=1./255) train_generator = train_datagen.flow_from_directory( '/kaggle/input/microsoft-catsvsdogs-dataset/PetImages', target_size=(150, 150), batch_size=32, class_mode='binary' ) print("Class Indices:", train_generator.class_indices) بهذا الشكل سيقوم المولد train_generator بتوليد دفعات من الصور مع التسميات التي تم استخراجها تلقائيًا من أسماء المجلدات. 1 اقتباس
0 محمد عاطف17 نشر 27 مارس أرسل تقرير نشر 27 مارس وعليكم السلام ورحمة الله وبركاته. يمكنك إستخدام الكود التالي كما جاء الرابط على موقع kaggle : https://www.kaggle.com/code/fareselmenshawii/cats-vs-dogs-classification?scriptVersionId=122519208&cellId=6#create-directories-for-training-and-validation CAT_DIR = '/kaggle/input/microsoft-catsvsdogs-dataset/PetImages/Cat' DOG_DIR = '/kaggle/input/microsoft-catsvsdogs-dataset/PetImages/Dog' TRAINING_DIR = "/tmp/cats-v-dogs/training/" VALIDATION_DIR = "/tmp/cats-v-dogs/validation/" TRAINING_CATS = os.path.join(TRAINING_DIR, "cats/") VALIDATION_CATS = os.path.join(VALIDATION_DIR, "cats/") TRAINING_DOGS = os.path.join(TRAINING_DIR, "dogs/") VALIDATION_DOGS = os.path.join(VALIDATION_DIR, "dogs/") لاحظ كيف أن صور القطط والكلاب كل منهم في مجلد منفصل . يمكنك إستخدام هذا المجلد كتسيمة label للبيانات لديك. 1 اقتباس
0 Ali Ahmed55 نشر 27 مارس الكاتب أرسل تقرير نشر 27 مارس بتاريخ On 27/3/2025 at 15:10 قال ياسر مسكين: الدالة flow_from_directory() أظهر المزيد طيب اي الداله دي ؟ وازي استخدمها في الكود ده import os import cv2 import numpy as np # مسار البيانات داخل Kaggle data_dir = "/kaggle/input/microsoft-catsvsdogs-dataset/train" # تحضير قوائم الصور والتسميات images = [] labels = [] # قراءة الصور وتصنيفها for file in os.listdir(data_dir): if file.endswith(".jpg"): img_path = os.path.join(data_dir, file) img = cv2.imread(img_path) img = cv2.resize(img, (128, 128)) # إعادة التحجيم إلى 128x128 images.append(img) # تحديد الفئة من اسم الملف label = 0 if "cat" in file else 1 labels.append(label) # تحويل البيانات إلى مصفوفات NumPy images = np.array(images) / 255.0 # تطبيع القيم بين 0 و 1 labels = np.array(labels) # طباعة معلومات عن البيانات print("عدد الصور:", len(images)) print("عدد الفئات:", len(set(labels))) # يفترض أن تكون 2 (قطط وكلاب) اقتباس
0 Mustafa Suleiman نشر 27 مارس أرسل تقرير نشر 27 مارس بتاريخ On 27/3/2025 at 19:10 قال Ali Ahmed55: طيب اي الداله دي ؟ وازي استخدمها في الكود ده import os import cv2 import numpy as np # مسار البيانات داخل Kaggle data_dir = "/kaggle/input/microsoft-catsvsdogs-dataset/train" # تحضير قوائم الصور والتسميات images = [] labels = [] # قراءة الصور وتصنيفها for file in os.listdir(data_dir): if file.endswith(".jpg"): img_path = os.path.join(data_dir, file) img = cv2.imread(img_path) img = cv2.resize(img, (128, 128)) # إعادة التحجيم إلى 128x128 images.append(img) # تحديد الفئة من اسم الملف label = 0 if "cat" in file else 1 labels.append(label) # تحويل البيانات إلى مصفوفات NumPy images = np.array(images) / 255.0 # تطبيع القيم بين 0 و 1 labels = np.array(labels) # طباعة معلومات عن البيانات print("عدد الصور:", len(images)) print("عدد الفئات:", len(set(labels))) # يفترض أن تكون 2 (قطط وكلاب) أظهر المزيد تلك من مكتبة Keras الموجودة الآن ضمن TensorFlow، وهي لتسهيل عملية تحميل الصور وتجهيزها للنماذج العصبونية العميقة، خاصة في حال البيانات منظمة بشكل معين على القرص الصلب، وذلك هو ما لدينا هنا. وتستطيع استخدامها كالتالي: import tensorflow as tf from tensorflow.keras.preprocessing.image import ImageDataGenerator import os structured_data_dir = "/kaggle/input/microsoft-catsvsdogs-dataset/train" datagen = ImageDataGenerator(rescale=1./255) batch_size = 32 img_height = 128 img_width = 128 train_generator = datagen.flow_from_directory( directory=structured_data_dir, target_size=(img_height, img_width), batch_size=batch_size, class_mode='binary', shuffle=True ) print("الفئات التي تم العثور عليها:", train_generator.class_indices) print("عدد الصور الكلي:", train_generator.samples) print("عدد الدفعات في كل دورة تدريب (epoch):", len(train_generator)) 1 اقتباس
0 Ali Ahmed55 نشر 27 مارس الكاتب أرسل تقرير نشر 27 مارس تمام جدا الف شكراا جدا لحضرتكم جزاكم الله كل خير بتاريخ On 27/3/2025 at 19:23 قال Mustafa Suleiman: structured_data_dir = "/kaggle/input/microsoft-catsvsdogs-dataset/train" أظهر المزيد بس دي عندي كده structured_data_dir = '/kaggle/input/microsoft-catsvsdogs-dataset/PetImages/Cat' structured_data_dir_dogs = '/kaggle/input/microsoft-catsvsdogs-dataset/PetImages/Dog' والا انا المفروض ان استخدم المجلد الرئسي يعني المجلد ال فيه مجلد القطط ومجلد الكلاب ؟ اقتباس
السؤال
Ali Ahmed55
السلام عليكم
هو فيه قاعد بيانات دي /kaggle/input/microsoft-catsvsdogs-dataset الlabels بيكون موجود فين انا مش شايف غير images بس ؟
عشان انا عاوز اعمل تصنيف الصور
تم التعديل في بواسطة Ali Ahmed556 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.