Ali Ahmed55 نشر الخميس في 14:34 أرسل تقرير نشر الخميس في 14:34 (معدل) السلام عليكم هو فيه قاعد بيانات دي /kaggle/input/microsoft-catsvsdogs-dataset الlabels بيكون موجود فين انا مش شايف غير images بس ؟ عشان انا عاوز اعمل تصنيف الصور تم التعديل في الخميس في 14:35 بواسطة Ali Ahmed55 3 اقتباس
0 Mustafa Suleiman نشر الخميس في 15:05 أرسل تقرير نشر الخميس في 15:05 التسميات ليست موجودة في ملف منفصل، ولكنها مُضمَّنة مباشرة في أسماء ملفات الصور نفسها. افحص أسماء الملفات، وستجد أن أسماء الصور والملجدات تتبع نمطاً معيناً: 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 ياسر مسكين نشر الخميس في 15:10 أرسل تقرير نشر الخميس في 15:10 وعليكم السلام ورحمة الله تعالى وبركاته، لا يوجد قاعدة بيانات منفصلة للتسميات في المسار /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 نشر الخميس في 15:12 أرسل تقرير نشر الخميس في 15:12 وعليكم السلام ورحمة الله وبركاته. يمكنك إستخدام الكود التالي كما جاء الرابط على موقع 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 نشر الخميس في 19:10 الكاتب أرسل تقرير نشر الخميس في 19:10 بتاريخ 3 ساعة قال ياسر مسكين: الدالة 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 نشر الخميس في 19:23 أرسل تقرير نشر الخميس في 19:23 بتاريخ 13 دقائق مضت قال 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 نشر الخميس في 19:24 الكاتب أرسل تقرير نشر الخميس في 19:24 تمام جدا الف شكراا جدا لحضرتكم جزاكم الله كل خير بتاريخ 2 دقائق مضت قال 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
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.