-
المساهمات
1954 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
3
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو ياسر مسكين
-
توجد مقالة تشرح الفرق بينهما بشكل مفصل أنصحك وأقترح عليك مراجعتها من هنا: يمكنك إيجاد مقالات أخرى تتحدث عن Mongodb من هنا: https://academy.hsoub.com/devops/servers/databases/mongodb/
-
كما تمّ التوضيح في التعليقات السابقة، فدورة علوم الحاسوب أُعدّت خصيصا لهكذا حالات، وما دمت لا تمتلك أيّ خبرة مسبقة بعد فالبدء مباشرة في الدورة لن يشكّل أيّ عائق للتعلم. كما أنّ هنالك ثلّة من المدربين سيحرصون على التواجد على مدار الساعة من أجل الردّ على استفساراتك وانشغالاتك. في حال لم تفهم مرحلة ما أو درسا بعينه، كلّ ما عليك فعله هو التوجه أسفل الدرس أين سيكون هنالك صندوق للتعليقات مشابه لهذا يمكنك طرح انشغالك هناك في أيّ وقت وحين. https://academy.hsoub.com/learn/computer-science/
-
مشكلة النسيان مشكلة عادية وأيّ شخص معرّض لها، لا داعي للقلق أو الشعور بالتوتر من هذا الأمر، في البرمجة أنت لست مطالبا بالحفظ المهم أن تفهم المفاهيم التي يتم تدريسها وتطبق مع المدرب، وفي حال نسيت أمرا ما يمكنك طرح سؤالك أو البحث من خلال موسوعة حسوب أو من خلال تصفح التوثيقات الرسمية للمكتبات والتكنولوجيات وحتى لغات البرمجة وأطر العمل المختلفة، ولقد تمّت الإجابة عن تساؤلات مشابهة وسأرفق لك مجموعة من الإجابات يمكنك الاطلاع عليها:
-
يمكنك حساب تاريخ الانتهاء المتوقع بإضافة عدد الأيام إلى تاريخ اليوم فرضا نستخدم لغة بايثون سيكون الأمر كالتالي: import datetime days_to_add = 15 today = datetime.date.today() expected_end_date = today + datetime.timedelta(days=days_to_add) print("تاريخ الانتهاء المتوقع:", expected_end_date) بحيث نستخدم دالة datetime.date.today() للحصول على تاريخ اليوم ونقوم بإنشاء فرق زمني باستخدام هذه العبارة: datetime.timedelta(days=days_to_add). ثم يتم جمعهما للحصول على التاريخ المتوقع للانتهاء.
-
هذه فترة طويلة نوعا ما، لذا في حالة عدم وجود ظروف قاهرة فمن الأفضل عدم تجاوز فترة الأسبوعين دون دراسة أو برمجة. لكن لا بأس، بما أنك قلت أنك درست الخوارزميات ووصلت إليها فهذا يعني أنك كنت تقريبا في منتصف الدورة، يمكنك الرجوع من بداية الدورة وتسريع الفيديو بهذه الطريقة: أي تسريع الجزئيات التي ترى نفسك أنك قد استوعبتها وتتذكرها، يمكنك تجاوز أيضا التمارين والتطبيقات التي أنجزتها من قبل في حال كنت قد فهمتها. وفي حال وجدت نفسك قد نسيت الكثير من الأمور في المسار يرجى إعادة مشاهدته وطرح سؤالك في أسفل الدرس أين سنساعدك.
-
هل تقوم بتصفح الهاتف أثناء متابعة الدروس؟ في حال كان كذلك أرجو منك الابتعاد عن أيّ مشتّتات أثناء التعلم والمتابعة مع المدرب وهذا لتحقيق أقصى استفادة ممكنة من الدورات، فعوامل التشتت كثيرة وفي كثير من الأحيان هي التي تسبّب فقدان التركيز ومنه نسيان الكثير من المفاهيم الأساسية. إضافة إلى ذلك، قلة التطبيق وعدم الاستمرارية وترك فراغ زمني كبير قد يصل لثلاثة أسابيع وحتى شهر دون مراجعة أو تطبيق برمجي فالطالب هنا حتما سينسى ما تلقّاه من معارف. أما بالنسبة للنسيان قصير المدى مثلا وأنت تتعلم قد تنسى أمورا معينة، ففي هذه الحالة لا تخف فهذا الأمر طبيعي، ونحن في البرمجة لسنا مطالبين بالحفظ بل بالفهم، وتوجد مواقع خاصة بالتوثيقات الرسمية والمكتبات ويمكنك الرجوع إليها متى احتجت إلى ذلك. ومع الاستمرارية والتركيز والابتعاد عن المشتتات ستجد نفسك تبرمج وتتذكر كيفية عمل الأكواد وقد تحفظ الكثير من الأمور تلقائيا من خلال الممارسة. لتحقيق أقصى استفادة من الدروس أنصحك بمراجعة الأجوبة من هنا:
-
وعليكم السلام ورحمة الله، هذا سلوك طبيعي ففي بعض الأحيان عند اختيار GPU مثل P100 سيتم استخدامه لحسابات التدريب الأساسية للنموذج، لكن الكثير من العمليات مثل تحميل البيانات، التحويلات، وتحضيرات أخرى تظل تعمل على ال CPU. لذلك من الممكن جدا أن يظهر استهلاك ال CPU مرتفعا باللون الأحمر حتى وإن كنت تستخدم GPU للتدريب. لكن يجب التأكد من أن الكود الخاص بك يقوم بنقل النموذج والبيانات إلى ال GPU باستخدام .to('cuda') في PyTorch كالتالي: import torch device = torch.device("cuda" if torch.cuda.is_available() else "cpu") model = MyModel().to(device)
- 8 اجابة
-
- 1
-
-
مرحبا زياد، في حال كان سؤالك متعلقا بإحدى الدورات التي قمت بالاشتراك فيها، أرجو منك الانتقال إلى قسم "دوراتي" ثم أسفل الدرس الذي واجهت فيه المشكلة، قم بإضافة سؤالك هناك، وهذا لمساعدتك بشكل أفضل. بالتوفيق إن شاء الله.
-
وعليكم السلام ورحمة الله، تبدأ المصفوفات بالفهرس 0 بدلا من 1 في معظم لغات البرمجة فمن الناحية التقنية يمثل فهرس المصفوفة إزاحة من عنوان الذاكرة الأساسي هنا العنصر الأول ليس له إزاحة (0)، والعنصر الثاني مزاح بمقدار حجم عنصر واحد وهكذا. في الرياضيات غالبا ما تستخدم النطاقات فترات نصف مفتوحة مثل [0,n) بمعنى "0 إلى n-1 ضمنا" هذا يجعل الحسابات أنظف إذا كان لدينا مثلا مصفوفة بطول n، فإن الفهارس الصالحة هي من 0 إلى n-1. وعندما نخزن مصفوفة أو مجموعة من العناصر فإن الكمبيوتر يحتاج إلى طريقة للوصول إلى كل عنصر والطريقة التي يعمل بها هي أنه يحفظ عنوان البداية للمصفوفة في الذاكرة أي أين تبدأ المصفوفة ولكي يصل إلى أي عنصر يستخدم هذه المعادلة البسيطة: موقع العنصر = عنوان البداية + (الفهرس × حجم العنصر) للعنصر الأول لا نحتاج إلى أي إزاحة عن نقطة البداية، لذلك تكون الإزاحة 0، وهكذا يكون الفهرس 0. يمكنك تخيل أن المصفوفة مثل صف من المنازل على شارع، المنزل الأول هو على بعد 0 متر من بداية الشارع، والمنزل الثاني على بعد 10 أمتار، والثالث على بعد 20 مترا وهكذا لذلك نشير إلى المنازل باستخدام المسافة المنزل في المسافة 0، المنزل في المسافة 10 وهكذا.
- 6 اجابة
-
- 1
-
-
مرحبا، عندما نكتب CSS نستخدم قاعدة الهوامش بهذا الشكل: margin: 3px 30px 2px 5px; وهذه القيم تعني: 3px: هامش من الأعلى 30px: هامش من اليمين 2px: هامش من الأسفل 5px: هامش من اليسار لكن في اللغة العربية أو أي لغة تكتب من اليمين إلى اليسار سيتم عرض الصفحة بالعكس لكن قيم CSS لا تتغير تلقائيا ففي اللغة الإنجليزية سيظهر الهامش الأيمن (30px) على يمين العنصر بينما في اللغة العربية سيظهر نفس الهامش (30px) لكن على يسار العنصر (لأن الاتجاه انعكس). لحل هذه المشكلة يمكنك استخدام خصائص CSS الحديثة التي تتكيف مع اتجاه اللغة: margin-block-start: 3px; margin-inline-end: 30px; margin-block-end: 2px; margin-inline-start: 5px; وفي حال كان سؤالك متعلقا بإحدى الدورات التي قمت بالاشتراك فيها، أرجو منك الانتقال إلى قسم "دوراتي" ثم أسفل الدرس الذي واجهت فيه المشكلة، قم بإضافة سؤالك هناك، وهذا لمساعدتك بشكل أفضل. بالتوفيق إن شاء الله.
- 1 جواب
-
- 1
-
-
الفرق الرئيسي بين Google Colab وJupyter Notebook يكمن في المنصة وطريقة الاستخدام فمثلا نجد أنّ Google Colab يعتمد على السحابة الإلكترونية أو الاستضافة السحابية من جوجل ولا يحتاج إلى تثبيت مسبق كما أنه يوفر وصولا مجانيا لفترات محدودة إلى وحدات معالجة الرسومات (GPU) أو وحدات المعالجة التنسورية (TPU)، مما يجعله مثاليا لمهام التعلم الآلي والتعاون الفوري عبر Google Drive. أما Jupyter Notebook فهو أداة مفتوحة المصدر تثبّت محليا على جهازنا مما يمنح تحكما كاملا في التخصيص والمكتبات والموارد، لكنه يعتمد على إمكانيات جهازك الشخصي أقترح عليك هاتين المقالتين للاستفاضة أكثر:
-
كلاهما لديه غرض مختلف فالعامل scoring يحدد كيفية تقييم أداء النموذج أثناء التحقق المتقاطع يمكنك تعيينه كسلسلة مثلا 'accuracy' أو 'f1' أو كدالة مخصصة وهنا يخبر GridSearchCV بالمقياس الذي يجب استخدامه لمقارنة تركيبات المعاملات المختلفة. في حين أنّ refit يتحكم فيما إذا كان سيتم إعادة تدريب ال estimator على مجموعة البيانات الكاملة بعد إيجاد أفضل المعاملات فعند تعيينه إلى True يقوم GridSearchCV بعد التحقق المتقاطع بإعادة تدريب النموذج باستخدام أفضل المعاملات التي تم العثور عليها على كامل بيانات التدريب، ويصبح النموذج النهائي متاحا عبر best_estimator_. إذا استخدمت عدة مقاييس عن طريق تمرير قاموس إلى scoring، يمكنك تعيين refit إلى مفتاح محدد للدلالة على المقياس الذي يجب استخدامه لاختيار أفضل نموذج. أما إذا تم تعيين refit إلى False، فلن يتم تدريب النموذج النهائي على مجموعة البيانات الكاملة، وستقتصر النتائج على نتائج التحقق المتقاطع أي أنّ scoring يتعلق بكيفية قياس أداء النموذج أثناء البحث، بينما يتعلق refit بما يجب القيام به بعد تحديد أفضل المعاملات.
- 6 اجابة
-
- 1
-
-
لا يؤدي استخدام PredefinedSplit إلى تسريع تدريب النموذج بطبيعته بل يغير فقط كيفية تقسيم البيانات أثناء ضبط المعلمات الفائقة أين يتم تحديد إجمالي وقت التدريب في GridSearchCV أو RandomizedSearchCV إلى حد كبير من خلال عدد مجموعات المعلمات وعدد التقسيمات التي تقيمها لكل مجموعة. إذا كنت تستخدم مثلا تقسيما واحدا (train/validation) بدلا من استخدام تقنيات التقسيم المتعددة (مثل 5-fold cross-validation)، فإن عدد مرات تدريب النموذج لكل تركيبة من معلمات النموذج سينخفض (من خمس مرات إلى مرة واحدة) وهذا قد يؤدي إلى تقليل الزمن الإجمالي للتدريب. بينما يقلل استخدام تقسيم واحد من زمن التدريب فإنه قد يؤثر على قوة التقييم والموثوقية لأن التقييم يعتمد على تقسيم واحد فقط بدلا من تقييم أكثر شمولا باستخدام عدة تقسيمات وإذا كنت تستخدم بالفعل تقسيما واحدا للتدريب والتحقق، فلن يكون هناك فرق كبير في زمن التدريب عند استخدام PredefinedSplit.
- 4 اجابة
-
- 1
-
-
وعليكم السلام ورحمة الله، بالنسبة لمكتبة pickle فهي مكتبة قياسية في بايثون لتخزين الكائنات وتحميلها لكنها لا تدعم ضغط البيانات أو التحسين للتخزين الفعال يمكنك مراجعتها من خلال المصدر التالي: الوحدة pickle في بايثون أما مكتبة joblib فهي جزء من حزمة scikit-learn وهي مصممة خصيصا لتحسين تخزين الكائنات التي تحتوي على مصفوفات NumPy كبيرة وهي شائعة في نماذج التعلم الآلي كما أنها تدعم ضغط البيانات مثل zlib، lz4 لتقليل حجم الملفات وتستخدم غالبا لحفظ وتحميل نماذج التعلم الآلي مثل sklearn بكفاءة، يمكنك مراجعة استخدامها من هنا: وباختصار فإن joblib هي اختيار أفضل لبيئات التعلم الآلي والبيانات الكبيرة بفضل تحسيناتها، بينما pickle مناسبة للاستخدام العام مع كائنات بايثون العادية.
- 5 اجابة
-
- 1
-
-
وعليكم السلام ورحمة الله، كل من numpy.linspace و numpy.arange تستخدمان لإنشاء مصفوفات من الأرقام في مكتبة NumPy لكن كل منهما تعمل بطريقة مختلفة فمثلا تستخدم linspace لتوليد مجموعة من الأرقام المتساوية التباعد بين نقطتين محددتين حيث يمكنك تحديد عدد النقاط المطلوبة، وغالبا ما تتضمن النهاية أيضا، مما يتيح توزيعا دقيقا للنقاط عبر النطاق. أما arange فتستخدم لتوليد تسلسل يبدأ من قيمة معينة ويستمر بزيادة ثابتة (step) حتى الوصول إلى قيمة نهاية غير مشمولة، مما قد يؤدي في بعض الأحيان إلى أخطاء طفيفة عند التعامل مع القيم العشرية بسبب تمثيلها داخل الحاسوب.
- 5 اجابة
-
- 1
-
-
لقد تمت الإجابة من قبل على هذا التساؤل، يمكنك البحث في شريط البحث عن كل ما يتعلق بالأسئلة الخاصة بامتحان الدورة وستجد العشرات من الإجابات مثلا يمكنك تصفحها من هنا: ويمكنك مراجعة الشروط من هنا: الامتحان والحصول على الشهادة أو من خلال الأسئلة الشائعة.
-
مهارة حل المشكلات ال Problem solving Skills واحدة من أهم المهارات البرمجية هذا إن لم تكن أهم مهارة في مجال ال Computer science حيث أن هذا المجال معتمد في الأساس على حل المشكلات فمثلا كانت هنالك مشكلة في الماضي وهي الرسائل المشفرة والتي كان من الصعب فك تشفيرها ولكن تم حلها من خلال البرمجة و فك التشفير والعديد من المشكلات الكثيرة التي تم حلها بالبرمجة لذا لا يمكن الاستغناء عن تكاملهما.
-
الفرق يتلخص في الوظيفة التي يؤديها كل منهما.، حيث أن confusion_matrix هي أداة تستخدم لحساب مصفوفة الارتباك بناء على التوقعات الفعلية والمتوقعة للنموذج، و تعرض هذه المصفوفة عدد التصنيفات الصحيحة والخاطئة، مما يساعد في تقييم أداء النموذج، بينما ConfusionMatrixDisplay هي أداة تستخدم لتصور مصفوفة الارتباك بشكل رسومي، مما يسهل فهم الأداء وتفسير النتائج بطريقة مرئية.
- 5 اجابة
-
- 1
-
-
قيمة الدورة هي 290 دولار، يمكنك موازنتها مع الجنيه المصري لمعرفة قيمتها بالعملة الخاصة ببلدك، أما بالنسبة للدفع فيكون فقط بالدولار، و بالتالي إذا كان لدى أحد أفراد عائلتك بطاقة فيزا يمكنهم الدفع بدلا عنك، و من الأفضل التحدث مع مركز المساعدة و حاول توضيح مشكلة في الرسالة.
-
بالتأكيد يمكنك ذلك فعمود ID يحتوي في الكثير من الأحيان على أرقام فريدة فقط خاصة بكل سطر، وبالتالي إبقاءه يمكن أن يؤثر بالسلب على تدريب النموذج، و أيضا بحذفه لن تخسر أي معلومة في البيانات بل يكون أفضل لتدريب النموذج، لهذا من الأفضل حذفه و تدريب النموذج بدونه
- 7 اجابة
-
- 1
-
-
من الأفضل تقسيم البيانات المتاحة لديك إلى مجموعتين، مجموعة تدريب ومجموعة اختبار، و استخدم مجموعة التدريب لتدريب النموذج، ثم قم بتقييم أدائه على مجموعة الاختبار، إذا كان الأداء جيدا على مجموعة الاختبار، فهذا مؤشر إيجابي على أن النموذج قادر على التعميم بشكل جيد. و يمكنك استخدام تقنيات مثل التحقق المتقاطع أو Cross-Validation لتقييم أداء النموذج على أجزاء مختلفة من البيانات، و إذا كانت البيانات الجديدة متاحة يمكنك اختبار النموذج مباشرة عليها لمعرفة كيفية تعامله معها.
- 4 اجابة
-
- 1
-
-
بالنسبة للمحركات الجاهزة توفر أدوات متكاملة تساعدك على تسريع عملية تطوير الألعاب، كما تحتوي على مكتبات جاهزة ومكونات إضافية تساعدك على بناء الألعاب بسهولة، فثملا Unity معروف بسهولة استخدامه ودعمه للعديد من المنصات، بينما Unreal Engine يتميز بجودة رسوميات عالية جدا وواقعية. و بعضها مجاني لكن مع اشتراكات أو عمولات تعتمد على أرباح اللعبة، حيث أن Unity مجاني حتى 200 ألف دولار أرباح سنوية، بعدها يتطلب اشتراكا، أما Unreal Engine يأخذ عمولة بنسبة 5% من الأرباح بعد تحقيق 1 مليون دولار. أما بناء محرك خاص يستغرق وقتا طويلا و ميزانية عاليا جدا لدرجة أنه يعتبر مستحيل أن تقوم بهذا بمفردك، وبالتالي تحتاج إلى فريق متكامل و ميزانية عاليا لتحقيق هذا الأمر.
-
السبب في عدم وجود المسار الأول (WindowsLiveGamebar) هو أن هذا المسار كان يستخدم في الإصدارات القديمة من Windows قبل Windows 10 ومع إطلاق Windows 10 قامت Microsoft بإعادة تصميم Game Bar بالكامل وتغيير هيكلة تخزين الإعدادات في سجل النظام. أصبحت الإعدادات الآن تخزن في المسار الجديد: لذا انتقل إلى المسار التالي: HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\GameDVR بعدها أعد تشغيل الجهاز ثم جرب التسجيل مرة أخرى.
- 4 اجابة
-
- 1
-
-
لا ليس كذلك فدالة sorted() في بايثون لا تستخدم خوارزمية Merge Sort وتستخدم بايثون خوارزمية مخصصة تسمى Timsortوهي خوارزمية هجينة تجمع بين مميزات كل من: Merge Sort (دمج مرتب) Insertion Sort (ترتيب بالإدراج) وتم تطوير Timsort بواسطة Tim Peters في عام 2002 خصيصا لبايثون والمميز في هذه الخوارزمية أنها تعمل بشكل أسرع مع البيانات المرتبة جزئيا وهي مستقرة (stable sort) وتحافظ على الترتيب النسبي للعناصر المتساوية وتستخدم ذاكرة إضافية أقل من Merge Sort الكلاسيكية وأما التعقيد الزمني لها في أسوأ الحالات هو O(n log n). يمكنك مراجعة المزيد من هنا حول الدالة: الدالة sorted() في بايثون
- 4 اجابة
-
- 1
-