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

السؤال

نشر (معدل)

السلام عليكم

هو فيه قاعد بيانات دي /kaggle/input/microsoft-catsvsdogs-dataset الlabels بيكون موجود فين انا مش شايف غير images بس ؟

 

عشان انا عاوز اعمل تصنيف الصور 

تم التعديل في بواسطة Ali Ahmed55

Recommended Posts

  • 0
نشر

التسميات ليست موجودة في ملف منفصل، ولكنها مُضمَّنة مباشرة في أسماء ملفات الصور نفسها.

افحص أسماء الملفات، وستجد أن أسماء الصور والملجدات تتبع نمطاً معيناً:

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
        ...

تفقد المستودع:

  • 0
نشر

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

لا يوجد قاعدة بيانات منفصلة للتسميات في المسار /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 بتوليد دفعات من الصور مع التسميات التي تم استخراجها تلقائيًا من أسماء المجلدات.

  • 0
نشر

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

يمكنك إستخدام الكود التالي كما جاء الرابط على موقع kaggle :

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 للبيانات لديك.

  • 0
نشر
بتاريخ 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
نشر
بتاريخ 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))

 

  • 0
نشر

تمام جدا 

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

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

بتاريخ 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'

والا انا المفروض ان استخدم المجلد الرئسي يعني المجلد ال فيه مجلد القطط ومجلد الكلاب ؟

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...