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

Chihab Hedidi

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

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

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

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

    13

كل منشورات العضو Chihab Hedidi

  1. يمكنك إستخدام الأمر التالي لمعرفة نوع المفسر بالضبط: python -c "import platform; print(platform.python_implementation())"
  2. بالنسبة ل Python هي لغة البرمجة نفسها، أي اللغة التي تكتب بها الكود، أما CPython هو تنفيذ أو مترجم لــ Python مكتوب بلغة C، حيث عندما نقول Python، غالبا ما نشير إلى CPython، لأنه هو الأكثر استخداما وانتشارا، يعني CPython هو البيئة التي يتم من خلالها تنفيذ الكود الذي تكتبه بلغة Python.
  3. اسمها مرتبط بالفعل بالثعبان، ولكن ليس لأن اللغة لها علاقة بالثعابين في الواقع مبتكر اللغة اختار هذا الاسم لأنه كان من معجبي برنامج بريطاني كوميدي قديم اسمه "Monty Python's Flying Circus"، حيث كان يستمتع بمشاهدة هذا البرنامج أثناء تطويره للغة في أواخر الثمانينات، فقرر أن يطلق عليها اسم Python كنوع من التكريم لهذا المسلسل.
  4. إذا أتقنت إحدى المنصتين، سواء Google Cloud أو Azure، فستتمكن من إتقان الأخرى بسرعة، لأن المفاهيم الأساسية متشابهة، الفرق الأساسي يكمن في الأدوات والواجهات، لكن الفهم العميق لإحدى المنصتين سيسهل عليك التكيف مع الأخرى، أما الاختيار بينهما يعتمد على الشركة والمنصة التي تستخدمها، فإذا كنت تستهدف العمل مع شركات تعتمد على نظام مايكروسوفت فقد يكون Azure هو الخيار الأفضل، أما إذا كنت تركز على بيئات تعتمد على الذكاء الاصطناعي والتحليلات الضخمة Google Cloud أكثر ملاءمة. أما بالنسبة لـ Kaggle Notebooks، فهي بيئة مجانية مخصصة لتحليل البيانات وتجربة النماذج بشكل سريع، لكنها ليست بديلا عن منصات السحابة مثل Google Cloud أو Azure التي توفر موارد حوسبة أقوى وقدرة على نشر النماذج على نطاق واسع.
  5. حاول اختيار المنظمات المشاركة في AI/Data Science حيث في كل عام تشارك منظمات مفتوحة المصدر تعمل في الذكاء الاصطناعي، التعلم الآلي، معالجة البيانات مثل: PyTorch, Hugging Face وغيرها، يمكنك الإطلاع على قائمة المنظمات السابقة حتى تأخذ فكرة عليها، أو يمكنك الإطلاع على قائمة المنظمات الخاصة بهذه السنة و إستخدم الفلترة عن طريق تحديد المجالات التي تريد مثل Artificial Intelligence و Data. و ستجد في القائمة على الجهة اليمنى وسائل الإتصال الخاصة بالمنظمة حاول التواصل معهم لتأخذ فكرة على النوعية المشاريع التي سيقومون بها.
  6. نستخدم drop لحذف صفوف أو أعمدة محددة بناء على أسمائها أو مواقعها، مما يمنحك تحكما دقيقا في البيانات التي تريد إزالتها، فمثلا يمكنك حذف عمود معين بتحديد اسمه وتعيين axis=1: import pandas as pd data = {'Name': ['Ali', 'Sara', 'Omar'], 'Age': [25, 30, 22], 'City': ['Cairo', 'Alex', 'Giza']} df = pd.DataFrame(data) df = df.drop('City', axis=1) # حذف عمود "City" print(df) أما dropna يعمل على حذف أي صفوف أو أعمدة تحتوي على قيم مفقودة NaN دون الحاجة إلى تحديدها يدويا، حيث يمكنه حذف الصفوف التي تحتوي على أي قيمة مفقودة أو التي تكون جميع قيمها مفقودة: import pandas as pd import numpy as np data = {'Name': ['Ali', 'Sara', np.nan], 'Age': [25, np.nan, 22], 'City': ['Cairo', 'Alex', 'Giza']} df = pd.DataFrame(data) df = df.dropna() # حذف الصفوف التي تحتوي على أي قيمة مفقودة print(df) الناتج سيكون: Name Age City 0 Ali 25.0 Cairo
  7. الحقيقة أن هذه الأدوات لا تلغي الحاجة إلى الذكاء البشري، بل تعزز دوره، فالذكاء الاصطناعي لا يزال بحاجة إلى من يفهمه، يوجهه، ويستخرج منه أفضل النتائج، كما أن هناك جوانب في تحليل البيانات واتخاذ القرارات المعقدة تحتاج إلى فهم عميق وخبرة لا يمكن للأدوات الآلية استبدالها بسهولة. و من الأفضل لأي شخص أن يستمر في التعلم وتطوير مهاراته، ويركز على المهارات التي تعزز التفكير النقدي وحل المشكلات، لأن المستقبل سيكون لمن يستطيع العمل جنبا إلى جنب مع الذكاء الاصطناعي، وليس لمن يراه كبديل يهدد وجوده.
  8. يجب أن يكون عدد الأعمدة في train_labels و validation_labels متساويا، حيث يمثل كل عمود فئة أو سمة متعلقة بالبيانات التي يتم استخدامها في النموذج، و إذا كان train_labels يحتوي على 5 أعمدة بينما validation_labels يحتوي على 123 عمود، فهذا يشير إلى وجود خلل في معالجة البيانات، و أحد الأسباب المحتملة هو عدم تناسق في تحويل التصنيفات إلى تنسيق One-Hot Encoding، حيث قد تكون بعض الفئات موجودة في بيانات التحقق ولكنها غير ممثلة في بيانات التدريب، كما قد يكون هناك خطأ في تقسيم البيانات أدى إلى فقدان بعض الأعمدة، أو اختلاف في مراحل المعالجة المسبقة مثل إزالة الأعمدة أو استبدال القيم المفقودة بطريقة غير متسقة بين المجموعتين، للتحق من ذلك يمكن طباعة أبعاد المصفوفات ومقارنة أسماء الأعمدة في كل من train_labels و validation_labels. في حال وجود اختلافات، يمكن استخدام align من pandas لتوحيد الأعمدة وإعادة ضبط القيم المفقودة إلى الصفر.
  9. المشكل لديك في ملف gitignore حيث لا يجب أن يكون بصيغة txt بل يكون فقط: .gitignore أي يكون بلا إسم و بهذا الإمتداد حتى يتم التعرف عليه من طرف git.
  10. يمكنك تنفيذ Priority Queue في Python باستخدام queue.PriorityQueue من المكتبة القياسية أو باستخدام قائمة قائمة الأولويات heap مع heapq، حيث يتم ترتيب العناصر تلقائيا حسب الأولوية عند الإدراج ، فمثلا باستخدام heapq، يمكنك إدراج العناصر كأزواج ليتم فرزها بناءً على الأولوية تلقائيا. ما يجعل تنفيذ هياكل البيانات أسهل في Python مقارنة بلغات أخرى هو أن Python توفر مكتبات مدمجة مثل collections و heapq و queue التي تبسط العمل مع القوائم، والـ heaps دون الحاجة إلى إعادة تنفيذها من الصفر، كما أن Python تعتمد على تركيب بسيط ومرن يجعل كتابة الكود وتنفيذ الهياكل أسرع وأوضح مقارنة بلغات أخرى مثل C++ أو Java، حيث تتطلب هذه اللغات تعريفات صريحة للأنواع وكتابة كود أكثر تعقيدًا لإدارة الذاكرة، يمكنك كتابة الكود بهذا الشكل: import heapq pq = [] heapq.heappush(pq, (1, "Task A")) # أولوية 1 heapq.heappush(pq, (3, "Task C")) # أولوية 3 heapq.heappush(pq, (2, "Task B")) # أولوية 2 while pq: print(heapq.heappop(pq)) # يسترجع العناصر حسب الأولوية
  11. لا هذا ليس Static Array بالمعنى التقليدي مثل الموجود في C أو Java، بل هي ديناميكية و الفرق بينهما هو أن Static Array حجمها ثابت ولا يمكن تغييره بعد الإنشاء، كما يتم تخصيص الذاكرة لها مسبقا، بينما Dynamic Array يمكن تعديل حجمها أي إضافة وحذف عناصر بحرية، و يتم إعادة تخصيص الذاكرة عند الحاجة. بالنسبة ل list في بايثون هي مصفوفة ديناميكية، مما يعني أنها تبدأ بحجم معين، وإذا أضفت المزيد من العناصر، يتم إعادة تخصيص ذاكرة أكبر ونقل البيانات إلى موقع جديد، و هذا يشبه ArrayList في Java. أما إذا أردت مصفوفة ثابتة في بايثون يمكنك استخدام المصفوفات من مكتبة array: import array arr = array.array('i', [1, 2, 3, 4, 5]) أو يمكنك استخدام numpy لمصفوفات أكثر كفاءة، ولكن حتى في numpy، إذا أردت حجمًا ثابتا، عليك تجنب resize أو append.
  12. نعم يمكنك تخزين قاعدة البيانات على جهازك باستخدام MySQL أو أي نظام إدارة قواعد بيانات، كل ما تحتاجه هو تثبيت MySQL Server على جهازك، ثم إنشاء قاعدة بيانات وحفظ جميع البيانات عليها، لكن هذا لا يعتبر حل مفيد لمتجرك لأنه في حالة قمت بإيقاف تشغيل جهازك سيفشل الإتصال بقاعدة البيانات و بالتالي سيتعطل الموقع، لذا من الأفضل التفكير في حلول أخرى مثل النسخ الاحتياطي الدوري و من ثم يمكنك إرسال هذه النسخة إلى جهازك.
  13. في جهة المسارات الخاصة بالفديوهات عند الدخول لأحدها ستجد بجانب كل فيديو نقطة زرقاء و هذا دلالة أنك لم تشاهد هذا الفيديو بعد، و عند مشاهدته ستختفي تلك النقطة، لذلك يمكنك الإعتماد على هذه الطريقة.
  14. في بايثون القوائم هي هياكل بيانات ديناميكية وليست مصفوفات ثابتة، و هذا يعني أنه يمكنك تعديل حجم القائمة بإضافة عناصر جديدة أو حذف عناصر دون الحاجة إلى تخصيص حجم معين مسبقا، أما إذا كنت بحاجة إلى مصفوفة ثابتة مثل C أو C++، يمكنك استخدام المكتبة array أو NumPy
  15. بعد إنتهاء الدورة و الحصول على الشهادة سيكون لديك العديد من المشاريع التي يمكنك عرضها في معرض الأعمال الخاص بك و بالتالي بالتأكيد ستساعدك كثيرا في الحصول على عمل، و أيضا سيتكفل فريق محترف من الأكاديمية بمرافقتك في تلك الفترة من أجل توجيهك و مساعدتك في الحصول على عمل بأسرع وقت ممكن، كما يمكنك البحث بمفردك أيضا.
  16. بالنسبة للإمتحان، يجب عليك إتمام أربعة مسارات تعليمية على الأقل و سيكون خاص بتلك المسارات فقط، و سينقسم إلى قسمين حيث القسم الأول عبارة عن محادثة صوتية مدتها 30 دقيقة يتم في طرح أسئلة بخصوص الدورة. بعدها يطلب منك إنجاز مشروع معين في مدة 15 يوم و هو عبارة عن مشروع التخرج يحدده المدرب و يكون مرتبط بما تعلمته. يمكنك أن تطلع على هذا الجواب لمزيد من المعلومات:
  17. صحيح مكتبة ScientificPython قديمة جدا ولم تعد تستخدم على نطاق واسع حاليا، آخر تحديث لها كان منذ سنوات عديدة، وهي لم تعد متوافقة مع الإصدارات الحديثة من Python، و بدلا منها يتم استخدام مكتبات حديثة وقوية مثل SciPy، Numpy, Pandas و غيرها.
  18. برامج قواعد البيانات عادة لا تستهلك العديد من المساحة و الموارد، و أيضا هناك إختلاف بينهما لذا من الأفضل تثبيتهما معا لأنه سيتم التطبيق عليهما الإثنتين. و إذا كنت تشعر أن هناك برنامج يستهلك الموارد في جهازك يمكنك دائما الإطلاع على ذلك من خلال ال task manager حيث يمكنك إيقاف البرامج من هناك.
  19. في هذه الحالة من الأفضل أن تراسل مركز المساعدة، و أرجوا توضيح رسالتك حتى يتم مساعدتك بأسرع وقت ممكن، لأنه يوجد ضغط على الرسائل و ربما يتأخر الأمر قليلا.
  20. استخدم هذا الأمر لرؤية السجلات أثناء تشغيل التطبيق: flutter logs في حالة ظهر أي خطأ أرجوا إرسال صورة له، و إلا جرب حذف التطبيق وإعادة تثبيته: flutter clean flutter pub get flutter build apk --release
  21. في كل مسار من الدورة سيكون هناك تمارين تطبيقية مع الأستاذ، يمكنك حلها و وضع إجابتك في التعليقات حيث سيقوم مجموعة من المدربين بتوجيهك، و في نهاية كل مسار سيكون هناك مشروع كبير يجب القيام به و تقوم بتطبيق ما تعلمته في الدورة. و في نهاية الدورة سيكون هناك إختبار حيث سيطلب منك إنجاز مشروع معين في مدة 15 يوم و هذا للحصول على الشهادة.
  22. بالنسبة للدورة فهي تتضمن البرمجة لأن هناك دروسا لإنشاء ألعاب ثنائية وثلاثية الأبعاد، مما يتطلب كتابة الكود، أما بالنسبة للنشر فلم يتم إضافته بعد في الدورة و لكن الدورة دائما تحتوي على تحديثات و بالتالي مع مرور الوقت سيتم إضافة هذا المسار، و إذا كنت مهتما بالنشر على PlayStation 4 أو 5، فهذا يتطلب الاشتراك في PlayStation Partners والحصول على عدة تطوير رسمية SDK، أما نشر الألعاب على الهواتف، فيعتمد على محركات الألعاب المستخدمة ودعمها للتصدير إلى Android وiOS، و يمكنك نشر مشاريعك على Google Play وApp Store بعد إعداد الحسابات اللازمة.
  23. يعتمد اختيارك بين تعلم كلاهما على أهدافك ومجال اهتمامك، فإذا كنت مهتما بتطوير تطبيقات تعتمد على معالجة اللغة الطبيعية فإن تعلم LLM سيكون الخيار الأنسب، أما إذا كنت ترغب في العمل على مشاريع تتعلق بتحليل الصور والفيديو، مثل التعرف على الوجوه والتصنيف الآلي للصور فإن رؤية الحاسوب ستكون الخيار الأفضل، و كلا المجالين مطلوبان بشدة، يمكنك أن تطلع على هذا المقال حيث سيعطيك فكرة أفضل عن المجال: https://io.hsoub.com/tech/118455-الرؤية-الحاسوبية-computer-vision
  24. لا يوجد إعدادات خاصة في Kaggle Notebook تحتاج إلى ضبطها قبل استخدام pickle لحفظ النموذج، فقط عند حفظ النموذج، تأكد من تحديد المسار الصحيح داخل بيئة Kaggle: import pickle model_filename = "/kaggle/working/model.pkl" # حفظ النموذج with open(model_filename, "wb") as file: pickle.dump(model, file)
  25. من الطبيعي تماما أن تشعر بالنسيان، فيجب أن تعتمد على التكرار والتطبيق العملي لتعزيز الفهم، و عندما تحضر أو تراجع ما درسته سابقا تجد أنك تتذكر الكثير مما تعلمته، وهذا أمر شائع بين المتعلمين، وأيضا لا يجب أن تحفظ كل شيء عن ظهر قلب، بل الأهم هو أن تفهم المفاهيم الأساسية وتعرف كيف تبحث عن التفاصيل عند الحاجة، و مع الممارسة المستمرة وتطبيق ما تعلمته في مشاريع حقيقية، ستجد أن استرجاع المعلومات يصبح أسهل وأكثر تلقائية، يمكنك أن تطلع على أجوبة هذا السؤال حيث ستفيدك أكثر:
×
×
  • أضف...