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

ياسر مسكين

الأعضاء
  • المساهمات

    1954
  • تاريخ الانضمام

  • تاريخ آخر زيارة

  • عدد الأيام التي تصدر بها

    3

كل منشورات العضو ياسر مسكين

  1. لمعرفة نوع المفسر الخاص ببايثون (Python) لديك، يمكنك استخدام وحدة sys المدمجة في بايثون: import sys print(sys.version) هذا سيعرض إصدار بايثون الكامل ونوع المفسر، كما في سطر الأوامر (Command Line)، يمكنك كتابة: python --version ولمعرفة مسار المفسر، يمكنك استخدام: import sys print(sys.executable)
  2. وعليكم السلام ورحمة الله تعالى وبركاته، عيدك مبارك وكل عام وأنت بخير. يمكنك ذلك بكل تأكيد وهذا سيعينك أكثر على فهم ما تعلمته وترسيخ معارفك الجامعية، يمكن عمل مشاريع وتطبيقات جانبية دون نسيان إنجاز المشاريع العملية الخاصة بالدورة ومساراتها. من الأفضل مراجعة الشروط قبل البدء في متابعة الدورة لأنها ضرورية خاصة وأنك أشرت أنك لم تقم بحفظ ما كنت تقوم بتطبيقه مع المدرب فمن شروط الحصول على الشهادة أن تقوم: إتمام أربعة مسارات تعليمية على الأقل التطبيق العملي مع المدرب، والاحتفاظ بالمشاريع العملية الناتجة لإرسالها للمراجعة رفع المشاريع على حسابك على GitHub أولًا بأول لمشاركتها معنا توثيق الهوية فمثلا في المسار الأول من الدورة يوجد "تطبيق مهام" من الأفضل المتابعة مع المدرب وحفظ المشروع العملي الناتج لإرساله للمراجعة فيما بعد. وأرجو الاعتماد على هذه الطريقة مع بقية الدروس والمسارات. صحيح أن المسارات الثلاثة الأولى تحتوي على معلومات ومفاهيم مهمة في مجال تطوير مواقع الويب بلغة بايثون ودجانغو إلاّ أنّ بقية المسارات هي مسارات تطبيقية وعملية وهي مهمة لاستيعاب المفاهيم التي تطرقت إليها، لذا من الأفضل دراستها ومتابعتها وستعينك على أخذ أكبر قدر من الاستفادة من الدورة، وأقترح عليك مراجعة الإجابات التالية لتحقيق استفادة من محتوى الدورات:
  3. عند وضع DEBUG=False لا يقوم Django بخدمة ملفات الوسائط (media) والملفات الثابتة (static)، لذا يجب على Apache أن يقوم بذلك لذا أرجو وضع الكود التالي في ملف .htaccess : RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^media/(.*)$ /Cyber-Website/cyberZ_website/media/$1 [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^static/(.*)$ /Cyber-Website/cyberZ_website/static/$1 [L] وتأكد من أن المسارات /Cyber-Website/cyberZ_website/media/ و/Cyber-Website/cyberZ_website/static/ تتطابق مع مكان تواجد ملفاتك على السيرفر. إذا كانت مختلفة، قم بتعديلها لتناسب إعدادات موقعك.
  4. وعليكم السلام ورحمة الله تعالى وبركاته، المحولات (Transformers) هي عبارة عن بنية شبكات عصبية تستخدم آلية تسمى "الانتباه الذاتي" أو self-attention لفهم العلاقات بين أجزاء مختلفة من البيانات وقد تم تصميمها في الأصل لمعالجة اللغة، ثم تم تكييفها للرؤية الحاسوبية من خلال نماذج مثل محول الرؤية (Vision Transformer - ViT)، الذي يتعامل مع الصور كمجموعة من الرقع المشابهة للكلمات في الجملة. وعلى عكس الشبكات العصبية التلافيفية التقليدية (CNNs) التي تعالج الصور بشكل هرمي وتركز على الأنماط المحلية، يمكن للمحولات النظر فورا في العلاقات بين الأجزاء البعيدة من الصورة، مما يتيح لها التقاط السياق العالمي بشكل أكثر فعالية. هذه القدرة جعلت المحولات مهيمنة بشكل متزايد في مهام الرؤية الحاسوبية بما في ذلك تصنيف الصور، واكتشاف الأشياء، وتجزئة الصور، متفوقة غالبا على البنيات السابقة. وبالإضافة إلى نموذج ViT، تم دمج تقنيات المحولات مع شبكات الالتفاف لإنشاء نماذج هجينة، وتم تطبيقها في مهام مثل الكشف عن الأجسام على سبيل المثال، DETR والتجزئة، وحتى تحليل الفيديو.
  5. وعليكم السلام ورحمة الله تعالى وبركاته، عيد فطر سعيد ومبارك عليك وعلى جميع أمتنا الإسلامية. شكرا على كلماتك الراقية، وتشجعيك ونتمنى لك تجربة تعليمية فريدة وناجحة. بالنسبة لسؤالك فالشبكات الكلاسيكية مثل LeNet و AlexNet و VGG تتبع عادة تصميمًا تسلسليًا يعتمد على تكديس الطبقات، حيث تستخدم الطبقات الالتفافية غالبا بأحجام نوى ثابتة تليها طبقات التجميع والطبقات المتصلة بالكامل. هذه الشبكات لا تتضمن آليات تُسهّل تدريب النماذج العميقة جدًا، وتميل إلى الاعتماد على تكديس طبقات أعمق بشكل متزايد لتحسين الدقة، مما قد يؤدي إلى مشاكل مثل تلاشي التدرجات. أما شبكات ResNet (الشبكات المتبقية) فتعالج هذه التحديات من خلال إدخال وصلات اختصار (أو وصلات متبقية). تسمح هذه الوصلات للشبكة بتعلم "الدوال المتبقية" أي الفرق بين التمثيل المطلوب والتمثيل التعريفي بدلا من تعلم التمثيل الكامل، مما يساهم في تخفيف مشكلة تلاشي التدرجات ويسمح بتدريب شبكات عميقة جدًا (غالبًا بمئات الطبقات) بدقة وتقارب أفضل. بينما تعتمد بنى Inception نهجا مختلفا إذ بدلا من تكديس الطبقات بشكل تسلسلي فقط، تقوم ببناء "وحدات Inception" تقوم بمعالجة المدخل باستخدام مرشحات التفافية المتوازية بأحجام مختلفة مثل 1×1 و3×3 و5×5.
  6. في حال كان سؤالك متعلقا بإحدى الدورات التي قمت بالاشتراك فيها، أرجو منك الانتقال إلى قسم "دوراتي" ثم أسفل الدرس الذي واجهت فيه المشكلة، قم بإضافة سؤالك هناك، وهذا لمساعدتك بشكل أفضل. أما إن لم يكن كذلك فأرجو توضيح سؤالك أكثر وفي أي سياق تريد أن يعمل هذا الكود.
  7. وعليكم السلام ورحمة الله تعالى وبركاته، فيهما تشابه، يشبه تحليل الصور قبل التدريب الدقة التحليلية المستخدمة في تقييم البيانات الطبية. يقوم الباحثون باستكشاف المجموعات البيانية بشكل شامل من خلال فحص توزيع الفئات والخصائص الإحصائية، كما يحللون بيانات الصور الوصفية للكشف عن التحيزات المحتملة وتقييم التمثيل الديموغرافي. كما تشمل هذه العملية تحديد الفئات الفرعية الممثلة تمثيلا ناقصا، وتقييم جودة الصور، واكتشاف التحديات. وهذا تماما كما يدرس الباحثون الطبيون عوامل خطر المرضى، يقوم خبراء رؤية الكمبيوتر أيضا بفحص البيانات لضمان المتانة والموثوقية والدقة.
  8. عندما يكون DEBUG = False لا يتم خدمة ملفات الوسائط (media files) تلقائيا كما يحدث في وضع التطوير، أما في بيئة الإنتاج (عندما DEBUG = False)، يجب عليك استخدام خادم ويب مثل Nginx أو Apache لخدمة الملفات الثابتة وملفات الوسائط. بالنسبة لخدمة ملفات الوسائط (media files) عندما يكون DEBUG = False، يجب استخدام خادم ويب مثل Nginx أو Apache لخدمة هذه الملفات. أما عندما يكون DEBUG = True، يتيح Django خدمة الملفات الثابتة (static files) والوسائط (media files) بشكل تلقائي ففي ملف settings.py، يتم تعريف هذه الإعدادات كالتالي: STATIC_URL = '/static/' STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'cyberZ_website/static/') ] STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles') MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join(BASE_DIR, 'media') وفي urls.py يمكن إضافة مسارات خدمة هذه الملفات كالتالي: from django.conf import settings from django.conf.urls.static import static urlpatterns = [ ] if settings.DEBUG: urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) DEBUG = True سيسمح بخدمة الملفات الثابتة والوسائط مباشرة من مجلداته في حين STATIC_URL و MEDIA_URL سيحددان المسار الافتراضي للوصول إلى هذه الملفات. STATICFILES_DIRS سيحدد المجلدات الإضافية للملفات الثابتة، بينما STATIC_ROOT و MEDIA_ROOT يحددان المسار الفعلي لتخزين هذه الملفات.
  9. هل قمت بتثبيت مكتبة prompt-sync ؟ في حال كنت تستخدم بيئة nodeJs أرجو تثبيتها من خلال الأمر التالي في الطرفية: npm install prompt-sync ثم استيراد المكتبة للعمل عليها من خلال السطر التالي قم بوضعه في الأعلى تماما: const prompt = require('prompt-sync')(); بعد تنفيذ الأمر سيعمل معك لاحظ هنا اخترت الرقم 5 وتم إظهار يوم الجمعة بشكل عادي: في حال استمر الخطأ أرجو توضيح المشكلة لديك أكثر، إرفاق رسالة الخطأ، أو المشروع الذي تعمل عليه. وفي حال كان سؤالك متعلقا بأحد دروس الدورة التي اشتركت فيها أرجو إرفاقه أسفل الدرس لتفقد المشكلة بشكل أفضل.
  10. هذا بسبب أنك نسيت كتابة علامة : بعد كلمة default في هذا السطر: default console.log('Invalid Input'); break; } لذا يجب تعديلها لتصبح كالتالي: default: console.log('Invalid Input'); break; } ومنه يصبح الكود بعد التعديل هكذا: let day = +prompt('Enter day:'); switch(day) { case 0: console.log('Sunday'); break; case 1: console.log('Monday'); break; case 2: console.log('Tuesday'); break; case 3: console.log('Wednesday'); break; case 4: console.log('Thursday'); break; case 5: console.log('Friday'); break; case 6: console.log('Saturday'); break; default: console.log('Invalid Input'); break; } وتلك النقطتين مهمتان جدا ولا ينبغي نسيانهما فهي تعلن نهاية الشرط (case) وتفصل بين الشرط والكود الذي سيتم تنفيذه، فضلا على أنها جزء من التركيب الصحيح للغة البرمجية لهذا واجهت Syntax Error بتصحيحه وإضافة النقطتين سيعمل معك البرنامج. يمكنك مراجعة البناء الخاص بها من هنا: التعبير البرمجي switch.
  11. وعليكم السلام ورحمة الله تعالى وبركاته، لا يوجد قاعدة بيانات منفصلة للتسميات في المسار /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 بتوليد دفعات من الصور مع التسميات التي تم استخراجها تلقائيًا من أسماء المجلدات.
  12. وعليكم السلام ورحمة الله تعالى وبركاته، عند تقسيم بيانات الصور لتدريب نموذج تعلم آلي، تكون العملية بسيطة جدا لأنّ الدالة train_test_split() مصممة للتعامل مع المصفوفات متعددة الأبعاد، مما يعني أنها تعمل بشكل مثالي مع مجموعات بيانات الصور. هذه الدالة تأخذ مجموعة الصور بالكامل وتقوم بتقسيمها عشوائيا إلى مجموعتين: مجموعة للتدريب وأخرى للاختبار. يضمن هذا التقسيم الحفاظ على التوافق الصحيح بين الصور والتسميات الخاصة بها على سبيل المثال إذا كان لديك مجموعة من صور القطط والكلاب مع التسميات الخاصة بها، فسيتم الاحتفاظ بكل صورة مع التسمية الصحيحة عند التقسيم. كما يمكنك التحكم في نسبة البيانات المخصصة للاختبار عن طريق تحديد النسبة المئوية التي تريد استخدامها. عادة نقوم بتخصيص حوالي 20% من البيانات للاختبار بينما نستخدم 80% منها للتدريب كما يمكن تعيين random seed مما يتيح الحصول على نفس التقسيم العشوائي في كل مرة تقوم بتشغيل الكود، وهذا مفيد لضمان تكرار النتائج في تجارب التعلم الآلي. التقسيم يكون عشوائيا تماما، لكنه يضمن أن تكون مجموعتا التدريب والاختبار ممثلتين بشكل جيد لمجموعة البيانات الكاملة وهذا سيساعد على إنشاء نموذج تعلم آلي أكثر دقة حيث يتم اختباره على بيانات لم يسبق له رؤيتها أثناء التدريب.
  13. يوجد نوعان من المشاريع، مشاريع وتطبيقات علمية تتواجد في المسارات الخاصة بالدورة، وفي هذه الحالة أنت مطالب بإنجازها خلال التعلم مع المدرب ثم رفعها لأنها شرط من شروط التقدم للامتحان النهائي، يمكنك مراجعة الشروط من هنا: إتمام أربعة مسارات تعليمية على الأقل التطبيق العملي مع المدرب، والاحتفاظ بالمشاريع العملية الناتجة لإرسالها للمراجعة رفع المشاريع على حسابك على GitHub أولًا بأول لمشاركتها معنا توثيق الهوية شروط التقدم للامتحان بعد ذلك سيتوجب عليك التواصل مع مركز مساعدة أكاديمية حسوب وإخبارهم في رغبتك بإجراء الامتحان مع تزويدهم بروابط المشاريع التي قمت برفعها وطبقتها أثناء الدورة، بعدها سيحدّد لك موعد لاجراء محادثة صوتية لمدة 30 دقيقة يطرح المدرب فيها أسئلة متعلقة بالدورة ويناقش معك ما نفذته خلالها. ثم سيحدد لك المدرب مشروعا مرتبطا بما تعلمته أثناء الدورة لتنفيذه خلال فترة محددة تتراوح بين أسبوع الى أسبوعين. سيراجع المدرب المشروع الذي أنجزته، وإن سارت جميع الخطوات السابقة بشكل صحيح، ستتخرج وتحصل على الشهادة أو يرشدك المدرّب لأماكن القصور ويطلب منك تداركها ثم التواصل معه من جديد.
  14. وعليكم السلام ورحمة الله تعالى وبركاته، الدالة cifar10.load_data() هي جزء من واجهة برمجة التطبيقات لمجموعات البيانات في Keras التابعة ل TensorFlow وتحديدا ضمن tf.keras.datasets.cifar10 وتقوم هذه الدالة بتحميل مجموعة بيانات CIFAR-10 في حال ما إذا لم تكن موجودة بالفعل في ذاكرة التخزين المؤقت وهي عبارة عن مجموعة من 60,000 صورة ملونة بحجم 32x32 بكسل تنتمي إلى 10 فئات. ويتم تقسيم المجموعة إلى 50,000 صورة للتدريب و10,000 صورة للاختبار، وتعيد الدالة هذه البيانات على شكل زوج من الأزواج: x_train, y_train) – مجموعة التدريب (x_test, y_test) – مجموعة الاختبار وتمثل كل صورة مصفوفة NumPy ذات أبعاد (32, 32, 3) للدلالة على وجود 3 قنوات لونية (أحمر، أخضر، أزرق) وتعطى التسميات كأعداد صحيحة تشير إلى إحدى الفئات العشر وتستخدم هذه الدالة بشكل شائع لتجربة النماذج التصنيفية باستخدام الشبكات العصبية الالتفافية (CNNs) في TensorFlow بسرعة وسهولة.
  15. وعليكم السلام ورحمة الله تعالى وبركاته، دورة إدارة تطوير المنتجات تقوم بالتركيز على تعليم المفاهيم والمراحل الأساسية لتطوير وإدارة المنتجات الرقمية من الفكرة حتى الإطلاق وما بعده فهي تشرح كيف يتم تطوير المنتجات الرقمية، وتشرح كيفية إدارة المنتجات بدءا من دراسة السوق وتحديد احتياجات المستخدمين وصولا إلى التخطيط، التنفيذ، المتابعة، والتحليل بعد الإطلاق. يمكنك أخذ فكرة عن مسارات ومحاور دورة إدارة تطوير المنتجات من خلال الصفحة الرسمية للاشتراك في الدورة من هنا: دورة إدارة تطوير المنتجات هذه الدورة موجهة أساسا لمن: ليس لديه خبرة في مجال البرمجة أو التصميم ويريد تنفيذ مشروعه الناشئ يريد تعلم إدارة تطوير المنتجات لتحسين فرصه التوظيفية يعمل في إدارة المنتجات ويرغب بتوسعة معلوماته حول عملية التطوير وإدارتها وبما أنك ترغب في تحسين فرصك التوظيفية فالمحاور التي ستتعلمها في الدورة ستساعدك في هذا الشأن من خلال تعلم: أساسيات إدارة تطوير المنتجات كيفية توظيف مصممين ومبرمجين إعداد المستندات اللازمة لتطوير المنتجات التعمق في منهجية أجايل وبالنسبة للوظائف التي يمكن تقلّدها يمكنك أن تعمل ك: مدير منتج (Product Manager) مالك المنتج (Product Owner) استشاري تطوير المنتجات محلل أعمال وفي مواقع العمل الحر كمستقل وخمسات، يمكنك إيجاد العديد من المشاريع التي تكون تحت وسم "إدارة المنتجات" وأي شيء بخصوص العمل بعد اشتراكك في الدورة يمكنك مناقشته من خلال مركز المساعدة: مركز مساعدة أكاديمية حسوب
  16. وعليكم السلام ورحمة الله تعالى وبركاته، يمكنك التعرف علىمفهوم الكلمة المفتاحية yield واستخداماتها في لغة بايثون من خلال الإجابتين هاتين: بالنسبة للفرق بينها وبين return فيكمن ذلك في أن yield تعمل مثل return في إعادة القيمة التي تم حسابها ولكنها لا توقف عمل الدالة بشكل كامل بل تسمح لنا بإعادة استدعاء الدالة نفسها مع حفظ آخر خطوة قمنا بها والعمل على الخطوة التالية.
  17. وعليكم السلام ورحمة الله تعالى وبركاته، في HTML لكل وسم دوره ودلالته الخاصة ووسم <p> يستخدم لتعريف فقرة نصية، وهو عنصر كتلي (block element) يعني أنه يخلق مسافة فاصل حول المحتوى بداخله. أما الوسوم مثل <strong> فهي عناصر مضمنة (inline elements) تستخدم لتحديد وتوضيح أجزاء من النص داخل الفقرة أو عنصر آخر لهذا فوضع الوسوم الأخرى داخل <p> قد يؤدي إلى استخدام غير مناسب للدلالات والهيكلية الصحيحة للصفحة، وقد يسبب مشاكل في التنسيق والتخطيط لهذا نستخدم كل وسم في سياقه المناسب حسب وظيفته ودلالته في المحتوى. في حال كان سؤالك متعلقا بإحدى الدورات التي قمت بالاشتراك فيها، أرجو منك الانتقال إلى قسم "دوراتي" ثم أسفل الدرس الذي واجهت فيه المشكلة، قم بإضافة سؤالك هناك، وهذا لمساعدتك بشكل أفضل. بالتوفيق إن شاء الله.
  18. وعليكم السلام ورحمة الله تعالى وبركاته، بالنسبة ل tf.data.Dataset.list_files فهو يعمل كمستكشف أولي بمعنى أنه يستعرض نظام الملفات الخاص بك للعثور على ملفات معينة تتوافق مع نمطك مثل .jpg" لكنه لا يقوم بفتحها فعليا فهو ببساطة ينشئ مجموعة بيانات تحتوي على مسارات الملفات كسلاسل نصية. أي أنه يختلف ذلك عن tf.io.read_file() الذي يأخذ تلك المسارات المكتشفة ويسترجع المحتوى الخاص بكل ملف وهي البيانات الثنائية كما هي مخزنة في الملف، أي السلسلة من البايتات التي تكوّن الملف بدون أي معالجة أو تفسير مع الحفاظ على البيانات في شكلها المضغوط والمشفر دون تفسير ما تمثله البايتات. وأخيرا يقوم tf.image.decode_jpeg بتحويل تلك البايتات الخام إلى تمثيل بصري ذي معنى عن طريق فك الضغط وتفسير الترميز الخاص ب JPEG وتحويلها إلى متجه ثلاثي الأبعاد بأبعاد تمثل الارتفاع والعرض وقنوات الألوان التي يمكن لنموذجك معالجتها.
  19. أنت تحاول استخدام pd.read_csv() لقراءة مجلد بدلا من ملف CSV لاحظ المسار: /kaggle/input/microsoft-catsvsdogs-dataset/PetImages/Cat هو يشير إلى مجلد Cat الذي يحتوي على ملفات صور، وليس ملفات CSV وهذا ما يسبب خطأ IsADirectoryError لأن pandas لا يمكنها قراءة المجلدات كما لو كانت ملفات بيانات جدولية. لذا لا تستخدم pd.read_csv() لقراءة مجلدات الصور بدلا من ذلك يمكنك استخدام وظائف نظام الملفات للوصول إلى ملفات الصور الفردية داخل تلك المجلدات. يمكنك استخدام os.listdir() للحصول على قائمة بأسماء ملفات الصور في مجلدي القطط والكلاب واستخدام مكتبات معالجة الصور مثل PIL لفتح وقراءة ملفات الصور، وهذا مثال بسيط يشرح ذلك: import os import pandas as pd cat_dir = '/kaggle/input/microsoft-catsvsdogs-dataset/PetImages/Cat' # الحصول على قائمة الملفات في المجلد cat_files = os.listdir(cat_dir) # عرض أول 5 ملفات فقط print("أسماء أول 5 ملفات في مجلد القطط:") print(cat_files[:5]) cat_data = {'file_name': cat_files[:10], 'label': ['cat'] * 10} cats_df = pd.DataFrame(cat_data) print("\nDataFrame من أول 10 ملفات:") print(cats_df)
  20. وعليكم السلام ورحمة الله وبركاته، الشبكة العصبونية الالتفافية (CNN) تبنى من سلسلة من الطبقات، حيث يلعب كل منها دورا فريدا في معالجة وتعلم البيانات المرئية والطبقات الثلاث هي كالتالي: بالنسبة للطبقات الالتفافية فالغرض منها هو استخراج المميزات من الصورة المدخلة بحيث تستخدم هذه الطبقات مرشحات قابلة للتعلم (أو نوى) تنزلق على الصورة المدخلة، حيث تحسب نواتج الضرب النقطي في كل موقع مكاني لإنشاء خرائط مميزة. خطواتها كالآتي: تلتقط الأنماط المحلية مثل الحواف والملمس أو البنى الأكثر تعقيدا. تتكيف المرشحات المتعلمة أثناء عملية التدريب لتبرز أهم المميزات المتعلقة بالمهمة المطلوبة. بالنسبة لطبقات التجميع (Pooling) فالهدف منها هو تقليل الأبعاد المكانية أي العرض والارتفاع لخرائط المميزات، مما يساعد على تقليل الحمل الحسابي والسيطرة على الإفراط في التعلم بحيث تقوم بتلخيص الاستجابات ضمن حي معين، غالبا باستخدام عمليات مثل التجميع الأقصى (Max Pooling) أو التجميع المتوسط (Average Pooling). وخطواتها كالآتي: تضيف درجة من عدم الحساسية للموقع الدقيق للمميزات في الصورة. يقلل تقليل الأبعاد المكانية من التعقيد ويساعد في إنشاء تمثيلات أكثر تجريدا. وأخيرا الطبقات المتصلة بالكامل (Fully Connected Layers) والغرض منها هو دمج المميزات التي تم تعلمها من الطبقات الالتفافية والتجميعية لأداء مهام التصنيف أو التقدير النهائية بحيث تحوّل المميزات عالية المستوى إلى متجه أحادي البعد. أين تكون كل خلية عصبية في هذه الطبقة متصلة بكل خلية من الطبقة السابقة، مما يمكن الشبكة من تعلم تركيبات غير خطية معقدة للمميزات المستخرجة. وهذه الطبقات معا تساعد CNN على تحويل البيانات الخام إلى تمثيل هرمي غني بالمميزات يستخدم بعد ذلك لاتخاذ قرارات دقيقة في المهام المختلفة.
  21. في دورة الذكاء الاصطناعي، يتم التركيز على كلا الجانبين ستتعلم كيفية التعامل مع النماذج الجاهزة مثل نماذج GPT و LLaMA، بالإضافة إلى فهم الخوارزميات الأساسية في تعلم الآلة كالانحدار، التصنيف، التجميع والتعلم الموجه وغير الموجه والتعلم المعزز. هذا يعني أنك ستحصل على قاعدة قوية لفهم كيفية عمل النماذج من الداخل، مما يمهد الطريق لإنشاء نماذج مبسطة أو تخصيص النماذج القائمة وفقا لاحتياجاتك وبعبارة أخرى الدورة لا تقتصر فقط على استخدام النماذج الموجودة، بل توفر أيضا المعرفة والأدوات الضرورية لتطوير أو تعديل نماذج الذكاء الاصطناعي عند الحاجة. يتم إنشاء نموذج من الصفر في مسار "تطوير نماذج ذكاء اصطناعي لمتجر إلكتروني" أين سيتم التطرق إلى هذه المحاور بالترتيب: تحليل بيانات المتجر الالكتروني إيجاد قواعد الترابط استخدام تعلم التصنيف توقع المبيعات المستقبلية ربط تقنيات الذكاء الاصطناعي مع المتجر الإلكتروني باستخدام واجهة برمجة التطبيقات ولكن يجب عليك أولا أن تكون قد فهمت دروس مسارات أساسيات بايثون، تحليل البيانات وقواعد البيانات وتعلم الآلة لأن هذا المسار سيكون مسارا تطبيقيا لكلّ ما ستدرسه في المسارات السابقة.
  22. ما سيتم التطرق إليه في هذه الدورة هو هذه النقاط: أساسيات الحاسوب وعلومه والتفكير المنطقي وما هي الخوارزميات وكيف تفيد في البرمجة تطبيقات عملية على أساسيات التفكير المنطقي باستخدام بيئة سكراتش Scratch التفاعلية أساسيات لغة البرمجة JavaScript وتطبيق المفاهيم التي تم شرحها باستخدامها، والتوسع في شرح التطبيقات العملية للغات البرمجة أساسيات أنظمة التشغيل المختلفة وكيفية تثبيت البرمجيات اللازمة للبرمجة عليها أساسيات سطر الأوامر في نظام لينكس، وشرح الأسس التي بني عليها النظام مع تطبيقها عمليًا أنظمة قواعد البيانات المختلفة، مع شرح تفصيلي للغة SQL للتعامل معها مبادئ أساسية في أنظمة قواعد البيانات NoSQL المفاهيم الأساسية التي تبنى فيها صفحات الويب مفاهيم أساسية في الشبكات والخوادم، وكيف يتم استقبال الطلبيات إلى الخادم والرد عليها مبادئ الحماية والأمان في الويب يمكنك الاطلاع عليها من خلال التوجه إلى صفحة الدورة، من خلال تبوبية: دورات أو من هنا مباشرة: بالتوفيق إن شاء الله.
  23. وعليكم السلام ورحمة الله، عند استخدام هذا السطر: for num in set(array): سيتم التكرار عبر العناصر بترتيب عشوائي على سبيل المثال، إذا كانت مصفوفة الأعداد هي: [2, -1, 3, -1] فإن ترتيب واحد مثل [2, -1, 3] قد يعطي مجموعا تراكميا 2 ،1 ، 4 بإجمالي 4 بينما ترتيب آخر مثل [2, 3, -1] قد يعطي 2 ، 5 ، 4 بإجمالي 5. وأيضا عندما توجد أعداد موجبة، الاستراتيجية المثلى هي استبعاد الأعداد السالبة لأن وجودها يقلل من المجموع الكلي في هذه المشكلة، إذا كان هناك عدد موجب واحد على الأقل، يمكنك دائما حذف الأعداد السالبة بحيث يكون المجموع الأمثل هو مجموع كل الأعداد الموجبة المميزة (الصفر لا يؤثر على المجموع) في حلّك قد تتم إضافة بعض الأعداد السالبة من المجموعة مما يقلل من المجموع. وبما أنه مسموح لك بحذف أي عناصر، يمكنك دائما تشكيل مصفوفة فرعية (Subarray) تحتوي على كل عدد مفيد (أي موجب) مرة واحدة فقط. الحل الأمثل هو: إذا كان هناك عدد موجب على الأقل: احسب مجموع جميع الأعداد الموجبة المميزة. إذا لم توجد أعداد موجبة: قم بإرجاع أكبر عنصر أي العدد "الأقل سلبية".
  24. Kadane's Algorithm هي خوارزمية خطية تستخدم لإيجاد أكبر مجموع لمصفوفة فرعية في مصفوفة معينة تعرف المصفوفة الفرعية بأنها مجموعة متصلة من العناصر داخل المصفوفة وتتعامل الخوارزمية بفاعلية مع الأرقام الموجبة والسالبة، مما يجعلها أداة متعددة الاستخدامات لحل العديد من المشكلات المتعلقة بالمصفوفات الفرعية. تعتمد الخوارزمية على منهج البرمجة الديناميكية من خلال حساب أكبر مجموع متصل ينتهي عند كل عنصر في المصفوفة والفكرة الأساسية هي مقارنة العنصر الحالي بأكبر مجموع متصل سابق، وتحديث القيم بناء على ذلك ولتنفيذها نقوم بالتالي أولا نقوم بتهيئة متغيرين: max_so_far: أكبر مجموع متصل تم العثور عليه حتى الآن. max_ending_here: المجموع المتصل الحالي. ثم نمرر على كل عنصر في المصفوفة من خلال إضافة العنصر الحالي إلى max_ending_here فإذا كان max_ending_here أقل من الصفر، نقوم بإعادة ضبطه إلى صفر، ونقوم بتحديث max_so_far إذا كان max_ending_here أكبر منه. وعند الانتهاء من المرور على المصفوفة، سيحتوي max_so_far على أكبر مجموع متصل على هذا النحو: public class KadaneAlgorithm { public static int maxSubarraySum(int[] arr) { int max_so_far = Integer.MIN_VALUE; int max_ending_here = 0; for (int i = 0; i < arr.length; i++) { max_ending_here += arr[i]; if (max_ending_here < 0) { max_ending_here = 0; } if (max_so_far < max_ending_here) { max_so_far = max_ending_here; } } return max_so_far; } public static void main(String[] args) { int[] arr = {-2, 1, -3, 4, -1, 2, 1, -5, 4}; int maxSum = maxSubarraySum(arr); System.out.println("أكبر مجموع متصل هو: " + maxSum); } } ثم الإخراج سيكون: أكبر مجموع متصل هو: 6 وهو ناتج جمع [4, -1, 2, 1]. أما بالنسبة للتعقيد الزمني لهذه الخوارزنية فهو O(n) حيث n هو عدد عناصر المصفوفة.
  25. وعليكم السلام ورحمة الله تعالى وبركاته، ال Convolutional Neural Networks ليست مقتصرة على الرؤية الحاسوبية فقط على الرغم من أنها أصبحت مشهورة بنجاحها في المهام المتعلقة بالصور مثل التصنيف والكشف والتجزئة، إلا أنه يتم الآن تطبيقها في العديد من المجالات الأخرى. على سبيل المثال تستخدم في معالجة اللغة الطبيعية لمهام مثل تصنيف النصوص وتحليل المشاعر، وفي معالجة الصوت والتعرف على الكلام، وحتى في مجالات مثل المعلوماتية الحيوية وتحليل السلاسل الزمنية. كما أنّ قدرتها على تعلم الميزات الهرمية تلقائيا من البيانات تجعلها متعددة الاستخدامات للعديد من أنواع المدخلات المنظمة والمتسلسلة. كما أنها وسيلة لتعلم الأنماط الموجودة في البيانات بحيث يمكن أن تكون البيانات بأي شكل مثل ثنائي الأبعاد أو ثلاثي الأبعاد أو أكثر وغالبا ما تستخدم الصور في الشروحات لأنها تجعل من السهل فهم كيفية تطبيق الشبكة على البيانات. وأيضا تم استخدامها في المجال الطبي لتحليل البيانات التسلسلية مثل إشارات تخطيط القلب الكهربائي (ECG) لذا فإن مرونتها في التعامل مع أنواع مختلفة من البيانات المنظمة ضمن شبكة (grid) تجعلها مفيدة في مجالات متنوعة، ولا تقتصر فقط على مهام الإدراك البصري.
×
×
  • أضف...