"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > بناء شبكة عصبية تلافيفية أساسية (CNN) في بايثون

بناء شبكة عصبية تلافيفية أساسية (CNN) في بايثون

تم النشر بتاريخ 2024-11-01
تصفح:448

Building a Basic Convolutional Neural Network (CNN) in Python

تعد الشبكات العصبية التلافيفية (CNNs) أدوات قوية لمعالجة الصور ومهام التعرف. لقد تم تصميمها لتتعلم تلقائيًا وبشكل تكيفي التسلسل الهرمي المكاني للميزات من خلال الانتشار العكسي. دعونا نتعمق في بناء شبكة CNN الأساسية باستخدام Python وTensorFlow/Keras.

؟ المتطلبات الأساسية

قبل البدء، تأكد من تثبيت المكتبات التالية:

pip install tensorflow numpy matplotlib

️ الخطوة 1: استيراد المكتبات الضرورية

ابدأ باستيراد المكتبات الأساسية:

import tensorflow as tf
from tensorflow.keras import layers, models
import matplotlib.pyplot as plt

️ الخطوة 2: تحميل مجموعة البيانات ومعالجتها مسبقًا

في هذا المثال، سنستخدم مجموعة بيانات CIFAR-10، والتي تتكون من 60.000 صورة ملونة مقاس 32x32 في 10 فئات.

# Load the CIFAR-10 dataset
(x_train, y_train), (x_test, y_test) = tf.keras.datasets.cifar10.load_data()

# Normalize the pixel values to be between 0 and 1
x_train, x_test = x_train / 255.0, x_test / 255.0

؟ الخطوة 3: بناء نموذج CNN

الآن، دعونا نبني نموذج CNN. سيتضمن هذا النموذج الطبقات الرئيسية: الطبقات التلافيفية، والتجميعية، والكثيفة.

model = models.Sequential()

# First Convolutional Layer
model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(32, 32, 3)))
model.add(layers.MaxPooling2D((2, 2)))

# Second Convolutional Layer
model.add(layers.Conv2D(64, (3, 3), activation='relu'))
model.add(layers.MaxPooling2D((2, 2)))

# Third Convolutional Layer
model.add(layers.Conv2D(64, (3, 3), activation='relu'))

# Flatten the output and add Dense layers
model.add(layers.Flatten())
model.add(layers.Dense(64, activation='relu'))
model.add(layers.Dense(10, activation='softmax'))

؟ الخطوة 4: تجميع النموذج

يتضمن تجميع النموذج تحديد المحسن، ووظيفة الخسارة، والمقاييس المراد مراقبتها أثناء التدريب.

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

؟ الخطوة 5: تدريب النموذج

تدريب نموذج CNN على بيانات التدريب لعدد قليل من العصور.

history = model.fit(x_train, y_train, epochs=10, 
                    validation_data=(x_test, y_test))

؟ الخطوة 6: تقييم النموذج

بعد التدريب، قم بتقييم النموذج على بيانات الاختبار لمعرفة مدى جودة أدائه.

test_loss, test_acc = model.evaluate(x_test, y_test, verbose=2)
print(f'\nTest accuracy: {test_acc}')

️ الخطوة 7: تصور نتائج التدريب

أخيرًا، دعونا نتصور مدى الدقة والخسارة خلال فترات التدريب.

plt.plot(history.history['accuracy'], label='accuracy')
plt.plot(history.history['val_accuracy'], label = 'val_accuracy')
plt.xlabel('Epoch')
plt.ylabel('Accuracy')
plt.ylim([0, 1])
plt.legend(loc='lower right')
plt.show()

؟ خاتمة

يعد نموذج CNN الأساسي هذا بمثابة نقطة انطلاق رائعة لمعالجة مهام تصنيف الصور. ومن خلال فهم هذا النموذج وتعديله، يمكنك تجربة بنيات وتقنيات مختلفة لتحسين أداء النموذج الخاص بك. استمر في استكشاف الطبقات وتعديلها لبناء شبكات عصبية أكثر قوة! ?


تم تصميم هذا الرمز ليكون سهل المتابعة والتعديل، مما يجعله مناسبًا للمبتدئين وأولئك الذين يتطلعون إلى البدء في استخدام CNNs في بايثون.

رابط المدونة لهندسة CNN:https://dev.to/abhinowww/demystifying-cnn-neural-network-layers-a-deep-dive-into-ai-architecture-12d2

بيان الافراج تم إعادة إنتاج هذه المقالة على: https://dev.to/abhinowww/building-a-basic-convolutional-neural-network-cnn-in-python-3bab?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3