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

Kais Hasan

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

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

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

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

    24

كل منشورات العضو Kais Hasan

  1. و عليكم السلام علي، بشكل عام يمكنك القيام بالكثير من المشاريع باستعمال keras، و لكن tensorflow توفر خيارات أوسع بكثير من keras. خاصة من ناحية سرعة التنفيذ فهي توفر إمكانية تصدير النموذج إلى الكثير من الصيغ التي تسرع من أداءه. كما أنه في التطبيقات المعقدة فهي تمنحك مرونة في التعديل أكثر من keras التي تعد في الغالب قوالب جاهزة. بكافة الأحوال لغاية الدراسة فإن keras تكفي، و أنصحك بالمتابعة فيها حتى فهم الأفكار كافة من ثم يمكنك تعلم tensorflow ، فتعلم إطار العمل سهل في الذكاء الاصطناعي في حال كنت تفهم الأفكار النظرية جيدًا. تحياتي.
  2. مرحبًا حسين، يمكنك تحديد عدد من الشيتات للقيام بعملية الجمع عن طريق وضع مجال الشيتات المراد الجمع منه ضمن علامتي تنصيص و من ثم وضع إشارة تعجب، تليها مجال الخلايا التي تريد الجمع منها. مثال على ذلك، لنفترض أنه لدينا 4 شيتات أسماءها من Q1 Sheet إلى Q4 Sheet، و تريد جمع الخلايا من B2 إلى D2 في كل خلية. يمكن القيام بذلك كما يلي: =SUM('Q1 Sales:Q4 Sales'!B2:D2) تحياتي.
  3. و عليكم السلام علي، في حال كنت تريد فقط استعمالها، فكافة المكتبات المتعلقة بالذكاء الاصطناعي توفر هذا التابع، مثل PyTorch و Tensorflow. و يمكنك استعمال numpy أيضًا للقيام بذلك. أما في حال كنت تريد كتابته من الصفر (و هذا أمر لا أنصح به إلا في حال كنت تريد التجربة) فكل ما ستحتاجه هو تابع exp في بايثون، فقط ابحث عن هذا التابع و عن معادلة ال tanh و ما تبقى سيكون عمليات طرح و تقسيم لا أكثر. حاول القيام بذلك فهذا يساعدك أكثر من إعطاءك الحل مباشرة، و لكن كما أخبرتك يفضل استعمال التوابع الجاهزة فهي تقوم ببعض عمليات التحسين الرياضي. تحياتي.
  4. مرحبًا علي، ليس واضح ما هو المقصود من سؤال، أي رأيت أنه يوجد أولمبياد رياضيات للذكاء الصنعي؟ في حال كان قصدك عما هو موجود على kaggle فهذا ليس عبارة عن أولمبياد و إنما مسابقة لبناء نموذج قادر على حل مسائل أولمبياد الرياضيات. تحياتي.
  5. مرحبًا، أغلب العناوين هي عبارة عن خوارزميات قديمة و حاليًا أغلبها غير مستعمل، و إنما تعطى بسبب أنها تساعد على فهم الطرق المتقدمة و الهدف منها و المشاكل التي تحلها. كما أنه من الواضح أن الكورس مختصر جدًا، فكما ترى فإن عنوان Neural Network يأخذ فقط 8 دقائق و هو وقت قصير جدًا بالنسبة لموضوع كبير جدًا. يمكنك الإطلاع على دورة أكاديمية حسوب فهي تتضمن كافة المواضيع المهمة في هذا المجال، كما أنها تحوي على مواضيع حديثة و الكثير من التطبيقات مما يساعدك على إنشاء بروفايل فيه بعض المشاريع و اكتساب معلومات نظرية و مهارات عملية كافية حتى تصبح بإمكانك التقدم لوظيفة. تحياتي.
  6. مرحبًا، السبب هون أنك تقوم بطباعة name كل مرة و ليس x، لذلك يتم طباعة كامل العناصر في كل مرة. عليك تغيير تعليمة الطباعة بحيث تطبع x. أيضًا من أجل مرات أخرى، عليك القيام بالتعليق أسفل الدرس في حال كان سؤالك متعلق بأحد دروس الدورات. تحياتي.
  7. و عليكم السلام محمود، البرمجيات كخدمة لا تعني أنه سيتم تطوير برنامج بناء على احتياجتك، و إنما سيكون هناك برنامج معين موجود و يمكنك استعماله بدون تنزيله، بحيث يعمل البرنامج على السحابة cloud. أحد أشهر الأمثلة عليها هو microsoft office، بالطبع يوجد برنامج يمكنك تنزيله منه و لكن هناك أيضًا نسخة تعمل على السحابة و لا داعي لتنزيل شيء على جهازك. لا توجد لغة برمجة أشهر أو أفضل، كل تطبيق يقوم باستعمال ما يناسبه. تحياتي.
  8. مرحبًا، يمكنك الاستعانة بموقع kaggle فهو يوفر الكثير من مجموعات البيانات التي يمكنك تطبيق ما تعلمتيه عليها. و لكن بشكل عام من الصعب إيجاد مشروع واحد لتطبيق ال sql و ال excel في نفس الوقت، لأنه بشكل عام يتم تخزين البيانات في إحداهما و ليس كليهما، و لكن يمكنك تطبيق مشروعين لحل هذه المشكلة. مثلًا هذا أحد المشاريع على كاغل يقوم بأمر مشابه لما تريدينه https://www.kaggle.com/code/sheokhand/data-analysis-project يمكنك الإطلاع عليه و محاولة تطبيق أمور مماثلة أو حتى أمور إضافية مما تعلمتيه على مجموعة بيانات أخرى. تحياتي.
  9. سأخبرك بالفكرة فمن الجيد أن تحاول هذا يساعدك على التحسن بشكل أسرع. في الكود التالي: أنت تقوم بالمرور على اللاعبين و تجعلهم يختارون الرمز. يمكنك وضع شرط قبل كود اختيار الرمز، في حال كان اللاعب الأول تجعله يختار الرمز. أما في حال كان اللاعب التاني، فيمكنك تحديد الرمز عن طريق جلب رمز اللاعب الأول و اختيار الرمز المعاكس. يمكنك اختيار الرمز المعاكس بسهولة عن طريق تعريف المصفوفة الخاصة بالرموز و إزالة رمز اللاعب الأول منها. هكذا يمكنك بسهولة إعطاء هذا الرمز للاعب الثاني. تحياتي.
  10. لقد أخبرتك بالحل الصحيح في تعليقي. تحياتي.
  11. الكود فيه أخطاء أخرى غير التي ذكرتها، فمثلًا تعليمة الطباعة التي تخبر بها الشخص أن يختار أحد الرموز، فقد قمت بوضع علامتي تنصيص داخل سلسلة نصية فيها علامتي تنصيص "" ، يجب أن تستعمل علامات تنصيص مغايرة كما يلي: symbol=input(f"{self.name},choose your symbol ({'/'.join(h)})") بعد القيام بذلك تبدأ اللعبة بالعمل بشكل صحيح نسبيًا، و لكن هناك خطأ منطقي آخر لديك و هو أنه يمكن للاعبين اختيار نفس الرمز، عليك جعل اللاعب الأول فقط يختار الرمز و يكون الرمز الخاص باللاعب الثاني هو الرمز الآخر. يبدو أنك ظننت أن الدالة remove لا تعمل بسبب أن اللاعب الثاني يظهر له الخيارين و السبب ليس مشكلة في الدالة remove، فأنت تقوم بإنشاء المصفوفة الخاصة بالخيارات في بداية التابع و بالتالي كل لاعب سيكون لديه الخيارين. يمكنك جعل المصفوفة معطى يمرر للدالة الخاصة بالاختيار، بحيث عندما يقوم اللاعب الأول باختيار أحد الخيارات يقوم بإزالتها من المصفوفة فتكون المصفوفة الممررة للاعب الثاني تحوي خيار واحد فقط. و لكن الطريقة الأولى أفضل فهي منطقية أكثر، فلا فكرة من جعل اللاعب الثاني يختار و هو ليس لديه إلا خيار واحد. تحياتي.
  12. مرحبًا، في حال كان المقصود هو التمارين البسيطة، فالخوارزمية ستكون عبارة عن مجموعة خطوات لا أكثر، أي فكر كيف ستحل المشكلة التي لديك بدون كتابة كود ثم اكتب على ورقة الخطوات بشكل عام بدون ذكر تفاصيل الكود، و آخر خطوة هي كتابة الكود، هذا يساعدك على فصل التفكير في حل المشكلة عن كتابة الكود الخاص بها. بالطبع تحتاج إلى تدريب و خبرة و لن تتمكن من ذلك في يوم واحد فقط فعليك بالمثابرة على حل الكثير من التمارين. أما في حال المشاريع الكبيرة، فهنا عليك تقسيم الميزات التي يجب للمشروع أن يتضمنها، و ما هو الأساس للمشروع. مثلًا لنفترض أنك تريد بناء مشروع متجر الكتروني، بالطبع قد يكون هناك الكثير من الميزات مثل عمليات البيع، إظهار عمليات البيع السابقة التي قام بها المستخدم، إظهار بعض الأغراض المشابهة لغرض ما و غيرها الكثير. لكن من المستحيل أن تبدأ بها كلها، فعليك وضع مخطط بسيط لهيكلية المشروع و الصفحات التي يحويها، من ثم البدء بتنفيذ الأساسيات و إضافة ميزة تلو الأخرى. الأمر يختلف من مشروع لآخر و لكن هذه هي الفكرة العامة. في حال كان سؤالك عن شيء محدد من فضلك اذكره حتى يمكنني مساعدتك بشكل أدق. تحياتي.
  13. مرحبًا، لا تحتاج إلى معرفة برمجية مسبقة فكما تلاحظ في وصف الدورة فقد تم ذكر أنك ستتعلم "كل ما تحتاجه من لغة Python لتطبيقات الذكاء الاصطناعي". أما فيما يخص الرياضيات، فبشكل عام يتم شرح كافة الأمور الرياضية التي لها أهمية في آلية العمل، و لكن بالطبع من المفترض أن يكون لديك معرفة ببعض الأمور البسيطة مثل معادلة المستقيم. و لكن هذا لن يشكل حاجز يمنعك من متابعة الدورة، يمكنك بكل بساطة البدء بها و في حال كان هناك شيء لم تفهمه يمكنك البحث عنه. كما أننا سنكون جاهزين لمساعدتك في أي مفهوم لم تفهمه و له علاقة بالرياضيات أو لأي سبب آخر. فقط قم بالتعليق أسفل الدرس و سيتم الرد عليك مباشرة. تحياتي.
  14. كما سبق و ذكرت في تعليقي، هناك مسابقات تعليمية لن تكسب منها أي أرباح فالهدف منها تعليمك. و هناك مسابقات بجوائز، و لكن الجوائز تكون غالبًا لأول 3 متسابقين و ليس للجميع، و للوصول إلى هذه المراكز عليك أن تكون خبيرًا فهناك أشخاص بخبرات سنين يقومون بالمشاركة. مسابقة titanic هي تعليمية.
  15. و عليكم السلام، فرص العمل الحر المرتبطة بتعلم الآلة أقل من المجالات الأخرى كالويب و تطبيقات الموبايل، و لكن في نفس الوقت المنافسة أقل بكثير. لكن ستجد أن أغلب المشاريع التي تطلب في حالة العمل الحر هي مشاريع بسيطة حيث أن المشاريع المعقدة غالبًا ما تحتاج إلى فريق عمل و سيرفرات تدريب و هذا غير ممكن في حالة العمل الحر. يوجد على كاغل الكثير من المسابقات التعليمية و التي يمكنك المشاركة فيها متى ما تعلمت أساسيات تعلم الآلة و التعلم العميق، و هناك تدرج في هذه المسابقات. من الجيد أن تشارك بها، و من الجيد أن تقوم برؤية حلول الأشخاص الآخرين فهي ستساعدك على معرفة طرق أفضل لحل كل مسابقة و بالتالي تعلم المزيد. بالطبع هذه المسابقات التعليمية لن تكسب منها المال، و من الصعب كسب المال من المسابقات قبل أن تصبح خبيرًا في هذا المجال. بشكل عام التعلم العميق تطبيقاته أكثر بكثير. حيث من الصعب أن تجد تعلم الآلة يطبق إلا في الحالات التعليمية، أو بعض الحالات الخاصة التي تطلب استعمال تقنيات لا تستهلك موارد كثيرة أو في حال لم توجد بيانات كثيرة، حيث أن التعلم العميق يحتاج إلى بيانات كثيرة لتدريبه بشكل عام على عكس تعلم الآلة. تحياتي.
  16. immutable تعني أنه لا يمكن التعديل على قيمة الغرض و ليس تغيير ما يشير إليه المتغير. بشكل عام عليك تخيل أن اسم المتغير هو مجرد مؤشر على القيمة، بالتالي عند عملية الإسناد أنت فقط تغير ما يشير إليه هذا الاسم و لا تغير على الغرض نفسه. تحياتي.
  17. مرحبًا، أول مصطلح و هو segment tree، بشكل عام تعتبر من أنواع الأشجار و هي بنى معطيات تستعمل لتخزين البيانات بحيث يمكن القيام بعمليات التعديل و البحث على مجالات من هذه البيانات بشكل سريع. أي مثلًا لنفترض أنه لديك مصفوفة تحتوي على قيم ما، و تريد تحديث كافة عناصر المصفوفة ضمن المجال i, j إلى قيمة معينة. الطريقة البسيطة هي عبارة عن المرور بشكل خطي (أي عنصر عنصر) على البيانات و تحديث كل منها. بينما في ال segment tree يتم استعمال العقد الأب التي تحتوي على المجال كاملًا أو جزء منه لتحديث البيانات، و يمكن اثبات أن عدد هذه الأجزاء هو صغير جدًا لذلك فهي تعطي أداء سريع. بالطبع الشرح الكامل لهذه الخوارزمية يحتاج درسًا كاملًا و من الصعب شرحه بتعليق واحد و لكن هذه فكرة بسيطة عنها و متى يمكن استعمالها. يمكن الإطلاع على هذا المقال في حال أردت معرفة المزيد: https://cp-algorithms.com/data_structures/segment_tree.html أما بالنسبة لل dynamic programming فهي عبارة عن تقنية و ليس خوارزمية، حيث أن الخوارزمية خطواتها محددة بينها هنا لدينا آلية عمل عامة و تختلف الخوارزمية المطبقة باختلاف التطبيق. بشكل عام تستعمل هذه التقنية عندما يكون حساب قيم ما هو عبارة عن تابع على قيم سابقة. من أجل توضيح الجملة السابقة، يمكننا اخذ مثال متتالية فيبوناتشي الشهيرة، ففي هذه المتتالية أول قيمتين هما 0 و 1، و بعدها يتم حساب قيمة كل عنصر عن طريق جمع قيم العنصرين الذين يسبقاه، بالتالي هنا أصبح لدينا العلاقة التي تحدثت عنها، لذلك يمكن تخزين هذه القيم بمصفوفة لتجنب حسابها في كل مرة و الاستفادة منها. بشكل عام ليس لهاتين الخوارزميتين علاقة ببعض، هناك بعض التطبيقات المقدمة التي يمكن فيها استعمالهما سويًا و لكن ذلك ليس بسبب ارتبطاهما ببعض و إنما بسبب طبيعة المسألة التي يمكن تجزئيها إلى مسألتين تحل كل واحدة منهما إحداها. هذه الخوارزميات متقدمة بعض الشيء، و بشكل عام لن تستعملها في حال كان مجال عملك في الويب أو غيره، و لكن من الجيد القراءة عنها و فهمها. تحياتي.
  18. يمكنك الضغط بالزر الأيمن داخله و يجب أن يظهر لك خيار خاص بغلقه.
  19. يبدو أنك اخترت خيار خاطئ لعملية ال run، يمكنك القيام بذلك بالشكل التالي: أولًا نضغط على run، ستظهر لنا قائمة نختار Run without debugging، هنا قد يعرض لك خيار أن تختار من بين بضعة خيارات، في حال حدث ذلك اختر python debugger. بعد ذلك يجب أن يعمل كل شيء بالشكل المطلوب. كما أنه هناك طريقة أخرى للقيام بذلك، في النافذة التي في الأسفل على اليسار (أي terminal) يمكنك كتابة ما يلي لتشغيل الكود: python MM.py تحياتي.
  20. مرحبًا تمام، هذا أمر طبيعي، فحسب غوغل من الممكن أن يتأخر كل تحديث 4 أو حتى 5 أيام. لذلك ليس عليك القيام بشيء الآن و فقط انتظر حتى نهاية هذه المدة. تحياتي.
  21. مرحبًا أيمن، last name يعني الكنية الخاصة بك. بينما ال middle name يعني اسم الأب. تحياتي.
  22. و عليكم السلام أيمن، بشكل عام المنح الدراسية تهتم كثيرًا بمعدلك الدراسي و بالتالي في حال لم تنتهي من الدراسة بعد فأفضل ما يمكنك القيام به هو أن تقوم بالتركيز على دراستك و الحصول على معدلات عالية. أيضًا من الجيد لو تقوم ببعض المشاريع خلال دراستك توضح من خلالها أنك قادر على تطبيق المفاهيم النظرية التي تعلمتها خلال دراستك، هذا في حال كنت تريد التقديم على منحة لدراسة الماستر، أما في حال كنت حاليًا طالب ثانوية فقد يكون هذا صعبًا قليلًا عليك و غير ضروري. من الجيد أن تهتم بالأوراق التي تقدمها، عليك تحضير CV جيد، كما عليك تحضير رسالة دافع ممتازة (في حال كانت مطلوبة)، بشكل عام من الجيد الاستعانة بخبير أو شخص قام بالتقديم مسبقًا حتى يقوم بمساعدتك. في الغالب تقوم الجامعة بذكر أسماء الطلاب الذين سبق و حصلوا على هذه المنحة مع طريقة للتواصل معهم، و أنصحك بالقيام بذلك، التواصل مع طالب حصل على نفس المنحة سابقًا هو أمر عليك القيام به إن كان ممكنًا، فهو سيعطيك بالتحديد ما تهتم به الجامعة و كيفية القيام بالأمور المختلفة. تحياتي.
  23. مرحبًا، بشكل عام من الجيد التطرق إلى هذه المواضيع، و لكن قم بدراسة بعضها فقط، فمن غير المجدي في البرمجة دراسة كافة الأمور مباشرة. الأفضل هو دراسة الأساسيات و عند مواجهة مشكلة معينة تحتاج إلى تعلم أمر معين يمكنك حينها العودة و دراسة هذا الموضوع، خاصة أنك في حال لم تقم بذلك قد تقوم بدراسة أمور لن تحتاجها لفترة طويلة و غالبًا ستكون قد نسيتها.
  24. مرحبًا ماجد، بشكل عام في البرمجة ليس عليك أبدًا حفظ الدوال، من المهم التركيز على فهم اللغة أو إطار العمل و آلية عمله و لكن الدوال يتم ذكرها للقيام بتطبيقات عملية و لتعرف أنه توجد دالة للقيام بذلك، بالتالي عندما تحتاج شيء ما ببساطة تقوم بالبحث عنه على غوغل. و عندما تظهر الدالة أمامك ستتذكرها. بالإضافة إلى ذلك فعند القيام بالكثير من التطبيقات العملية فإنك تلقائيًا ستجد أنك حفظت الدالات. أما القيام بوضع كافة الدالات في ملف و حفظهم فهو أمر غير جيد نهائيًا فهو يشجعك على الحفظ أكثر من الفهم و هذا أمر ضار لأي مبرمج. تحياتي.
  25. مرحبًا علي، في حال كان لا يوجد لديك غير صور فهي بيانات غير مسماة، يجب وجود تسميات للصور حتى تصبح مسماة، مثلًا أن تكون كل مجموعة صور ضمن مجلد يحوي اسم الصنف، أي صور التفاح ضمن مجلد اسمه apple و صور البرتقال ضمن مجلد اسمه orange و هكذا. أو أن يكون هناك ملف آخر يربط كل اسم صورة أو مسارها بصنف معين. تحياتي.
×
×
  • أضف...