-
المساهمات
1288 -
تاريخ الانضمام
-
تاريخ آخر زيارة
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو عبد الوهاب بومعراف
-
وعليكم السلام ورحمة الله، Google Authenticator هو تطبيق للهاتف المحمول طورته شركة Google ويستخدم لإجراء عملية التحقق بخطوتين (2FA) بحيث يقوم التطبيق بإنشاء رموز تحقق مؤقتة عادة ما تكون مكونة من 6 إلى 8 أرقام تعتمد على الوقت أو على عداد معيّن، وعند إعداد الحساب، يتم تزويد المستخدم بمفتاح سري أو رمز QR يخزن في التطبيق، ومن ثم يستخدم هذا المفتاح لتوليد الرموز التي يجب إدخالها بعد كلمة المرور أثناء عملية تسجيل الدخول. لتثبيته يمكنك متابعة هذه الخطوات من الموقع الرسمي من هنا: https://support.google.com/accounts/answer/1066447?hl=ar&co=GENIE.Platform%3DAndroid
- 3 اجابة
-
- 1
-
-
وعليكم السلام ورحمة الله، هناك طريقتان مختلفتان لإعادة تعيين كلمة المرور إذا كنت قد سجلت الدخول بالفعل: قم بزيارة صفحة الإعدادات (Settings) ومرّر حتى تصل إلى قسم كلمة المرور (Password). أدخل أولا كلمة المرور الحالية، ومن ثم أدخل كلمة المرور الجديدة مرتين. انقر فوق تغيير كلمة المرور (Change Password). أما إذا كنت قد سجلت الخروج يمكنك زيارة صفحة إعادة تعيين كلمة المرور (Reset Password) بعدها قم بإدخال عنوان البريد الإلكتروني المُستخدم في حساب Coursera الخاص بك وسترسل رسالة بريد إلكتروني لتغير كلمة مرور حساب Coursera وإذا لم تتلقّ رسالة بريد إلكتروني بعد بضع دقائق، فتحقق من مجلد البريد العشوائي الخاص بك. على العموم يمكنك معرفة الخطوات لعمل ذلك ومتابعتها من خلال موقع coursera نفسه من خلال هذا الرابط: https://www.coursera.support/s/article/208279586-Reset-your-Coursera-password?language=ar
- 7 اجابة
-
- 1
-
-
أرجو إضافة: C:\Users\Wajid\Desktop\New folder\flutter\bin إلى متغير PATH في نظامك ثم نفذ الأمر: sdkmanager --install "cmdline-tools;latest" ولحل مشكلة ترخيص Android: flutter doctor --android-licenses وفي حال استمر المشكل أرجو إرسال لقطة شاشة كاملة للخطأ الظاهر بعد تنفيذ أمر flutter doctor أو انسخ والصق هنا ما يظهر لك.
-
تأكد من تثبيت Flutter SDK بشكل صحيح وإضافته إلى متغيرات النظام (PATH) وتأكد من تثبيت إضافة Flutter في VS Code ثم جرّب تشغيل الأوامر التالية في terminal: flutter doctor ثم هذا الأمر لتحديث المكتبات: flutter pub get بالنسبة للمشكلة الثانية افتح Android Studio ثم اذهب إلى: Settings/Preferences > Appearance & Behavior > System Settings > Android SDK وتأكد من تثبيت SDK Tools المناسبة وخاصة "Android SDK Command-line Tools" في حالة استمرار الخطأ أرسل لقطة شاشة تبين رسالة الخطأ. وفي حال كان سؤالك متعلقا بدرس ما في إخدى الدورات أرجو منك طرحه أسفل الدرس في صندوق التعليقات المخصص لذلك.
-
ليس كذلك فمفهوم ال Bias وال Variance لا يقتصران على نماذج التصنيف فقط، بل ينطبقان على جميع نماذج التعلم الآلي، بما في ذلك نماذج الانحدار وغيرها. Bias: يشير إلى التبسيط المفرط للنموذج بحيث لا يستطيع التقاط تعقيدات البيانات. Variance: يشير إلى حساسية النموذج لتغير بيانات التدريب مما يؤدي إلى تباين في الأداء عند استخدام بيانات جديدة. وتحقيق توازن بينهما أمر أساسي لضمان تعميم النموذج بشكل جيد على بيانات غير مرئية.
- 4 اجابة
-
- 1
-
-
السلام عليكم ورحمة الله، في حال كان سؤالك متعلقا بأحد الدروس في إحدى الدورات من فضلك قم بنقل سؤالك هناك أسفل الدرس أين ستجد صندوقا للتعليقات مثل الذي تراه هنا، يمكنك إضافته هناك لمساعدتك بشكل أفضل. يمكنك محاولة إنشاء نظام الموافقة على الطلبات في Laravel عبر تنفيذ الخطوات التالية بداية بتحديد الأدوار التي لديك باستخدام حزمة مثل spatie/laravel-permission لتعيين الأدوار ولتكن: user، small admin و big admin وعلى حسب قاعدة البيانات لديك يمكنك إنشاء جدول للطلبات (orders) يحتوي على حقول كهاته: معرف المستخدم (user_id) ومعرف المنتج (product_id). حالة الطلب (status) بقيم مثل: pending: عند تقديم الطلب من المستخدم. pending_big_admin: بعد موافقة المسؤول الصغير. approved: بعد موافقة المسؤول الكبير. declined: في حال رفض الطلب. حقول لتخزين معرف المسؤول الذي قام بالموافقة (small_admin_id وbig_admin_id). في هذه الحالة عند ضغط المستخدم على "إضافة إلى العربة"، سينشئ سجل طلب جديد بحالة pending، وترسل إشعارا للمسؤول الصغير، فإذا وافق، نغير حالة الطلب إلى pending_big_admin وسجل معرف المسؤول الصغير، ثم أرسل إشعارا للمسؤول الكبير فإذا رفض تغيّر الحالة إلى declined وتبلغ المستخدم برفض الطلب. وعند استلام الطلب بحالة pending_big_admin إذا وافق تغيّر الحالة إلى approved وتنفذ الطلب مثلا إضافة المنتج إلى العربة أو متابعة عملية الشراء وإبلاغ المستخدم بالموافقة لكن إذا رفض تغيّر الحالة إلى declined وتبلغ المستخدم برفض الطلب أيضا. وبالطبع يمكن استخدام Laravel Notifications لإرسال الإشعارات سواء عبر البريد الإلكتروني أو الإشعارات داخل التطبيق لكل من المسؤولين والمستخدم ويمكن تنظيم المسارات (Routes) والتحكم في الوصول من خلال إنشاء مسارات منفصلة لكل مستخدم لديك واستخدام middleware للتحقق من صلاحيات كل دور قبل إرسال الطلبات.
-
قم بحذف ذاكرة التخزين المؤقت وأعِد بناء المشروع من الصفر: flutter clean && flutter pub cache repair && flutter pub get ثم اختبر التطبيق في وضع التصحيح (Debug) لمعرفة الخطأ الدقيق: flutter run -v هذا الأمر سيظهر التفاصيل الكاملة للأخطاء في الطرفية (Terminal) أثناء التشغيل. وإذا كان التطبيق يعمل في ال Debug ولا يعمل في ال Release: flutter build apk --no-shrink
-
يمكن تحقيق ذلك بعدة طرق لكن يجب أن تفهم كيفية عمل ذلك، لذا سأوضح لك الطريقة ويمكنك محاولة حلّ المشكلة بنفسك وفي حال واجهتك أيّ صعوبة سأكون معك خطوة بخطوة لحلّها، أولا ستحتاج لتحديد المدخلات فأنت تحتاج إلى متغير يحمل عدد الأيام المراد إضافتها وتحتاج إلى الحصول على تاريخ اليوم الحالي كنقطة بداية. في JavaScript هناك كائن Date الذي يمكنك استخدامه للتعامل مع التواريخ فهذا الكائن يوفر دوال للحصول على التاريخ الحالي وتعديل التواريخ. لذا ستقوم بإنشاء تمثيل للتاريخ الحالي وإنشاء تمثيل جديد للتاريخ المستقبلي ثم تطبيق عملية إضافة عدد الأيام إلى التاريخ الأصلي هكذا: const today = new Date(); const futureDate = new Date(); ثم تقوم بإضافة عدد الأيام إلى التاريخ المستقبلي: futureDate.setDate(today.getDate() + numberOfDays); لاحظ هنا أنّ المتغير numberOfDays هو المتغير الذي من المفترض أن يحمل عدد الأيام التي تحدثت عنها وفي النهاية تعرض النتائج.
-
صحيح أنّ دروس البرمجة لمختلف دورات أكاديمية حسوب هي متاحة مدى الحياة، بما فيها التحديثات الدورية التي يتمّ القيام بها. لكنّ هذا الأمر لا يجب أن يجعل الطالب يتكاسل وينقطع عن الدراسة لفترات طويلة دون عذر أو سبب وجيه يمنعه من ذلك، خاصة أنّ الدروس هي عبارة عن مسارات وفي أغلب الأحيان تكون هذه المسارات مترابطة فيما بينها، والانقطاع قد يكون عاملا سلبيا للتعلم. يمكنك مراجعة المسارات مسارا بمسار، للتأكد من أنك قد فهمت دروسه، يمكنك تذكر ذلك من خلال العنوان، في حال كنت قد فهمت الدرس من قبل جيدا فلن يكون صعبا تذكره يمكنك تسريع الفيديو وفي حال واجهتك صعوبة ما فقط اطرح سؤالك مباشرة أسفل الدرس أين ستجد صندوقا للتعليقات مثل الذي تراه هنا.
-
نبدأ العد من الصفر في المصفوفات لأن ذلك يتماشى مع كيفية تخزين البيانات في الذاكرة، ويجعل العمليات الحسابية على الفهارس أبسط وأسرع عندما تعرّف مصفوفة في C يتم تخزين العناصر بجانب بعضها في الذاكرة، لكل عنصر عنوان في الذاكرة لنفترض أن أول عنصر موجود في العنوان 1000 في الذاكرة، وأضفنا أربعة عناصر جديدة بعده على افتراض أنّه إذا كان كل عنصر يأخذ 4 بايت، فكل عنصر جديد يبدأ بعد 4 بايت من السابق ومنه ستكون كالتالي: 1004 1008 1012 1016 فعندما تشير إلى المصفوفة arr فإن arr هو في الواقع العنوان الأول في الذاكرة 1000 وكل من: arr[0] تعني "العنصر الأول بدءا من العنوان الأساسي" أي: 1000 + 0 * 4 = 1000 arr[1] تعني "العنصر الثاني بدءا من العنوان الأساسي" أي: 1000 + 1 * 4 = 1004 arr[2] تعني "العنصر الثالث بدءا من العنوان الأساسي" أي: 1000 + 2 * 4 = 1008 لاحظ أن الصيغة بسيطة عند استخدام الصفر: عنوان العنصر = العنوان الأساسي + الفهرس × حجم العنصر أما إذا بدأنا الفهرس من 1، فستصبح الصيغة أكثر تعقيدا (ستحتاج إلى index - 1 في كل مرة) مما يجعل الحساب أصعب.
- 6 اجابة
-
- 1
-
-
وعليكم السلام ورحمة الله pickle هي مكتبة مدمجة في بايثون تستخدم لتحويل الكائنات مثل القوائم والقواميس والأشياء إلى سلسلة من البايتات بحيث يمكن تخزينها على القرص أو نقلها عبر الشبكة واستعادتها لاحقا بنفس الحالة. أما joblib فهي مكتبة مبنية على pickle ولكنها محسنة لتخزين واسترجاع الكائنات الكبيرة خاصة تلك التي تحتوي على بيانات رقمية ضخمة مثل مصفوفات Numpy باستخدام تقنيات مثل الضغط وال memory mapping لتحسين الأداء. والفارق الرئيسي بينهما أنّ pickle تعتبر خيارا مناسبا للتعامل مع الكائنات الصغيرة والمتوسطة الحجم بينما تقدّم joblib أداء أفضل عند التعامل مع بيانات ضخمة أو كائنات معقدة لاعتمادها على تقنيات متقدمة لتسريع عمليات التخزين والاسترجاع مما يجعلها الخيار الأمثل في تطبيقات تعلم الآلة والبيانات الكبيرة.
- 5 اجابة
-
- 1
-
-
نعم يمكنك ذلك، حيث يمكن للفرع الرئيسي الإشراف على الدخل والفواتير وإدارة الفروع الجديدة عبر واجهة تحكم مركزية، و من حيث الأمان فإن Django يوفر ميزات قوية مثل التصدي لهجمات SQL Injection، وإدارة الجلسات، ونظام المصادقة القوي، ولكن يجب عليك اتباع أفضل ممارسات الأمان مثل استخدام HTTPS، وتحديد صلاحيات المستخدمين بدقة، وتطبيق جدران حماية على قاعدة البيانات. بالنسبة للاستضافة يفضل استخدام خوادم سحابية قوية مثل AWS، أو DigitalOcean لضمان تحمل الضغط العالي وتدفق البيانات بين الفروع، أما عن تحويل المشروع إلى تطبيق يمكن تنزيله على الجوال والكمبيوتر، فيمكنك ذلك من خلال تحويل الواجهة إلى تطبيق ويب تفاعلي PWA أو استخدام تقنيات مثل React Native أو Flutter لتطوير تطبيقات مخصصة تتصل بالـ API الخاصة بالمشروع.
- 2 اجابة
-
- 1
-
-
مرحبا محمد، الدورة تحتوي على عشرة مسارات، و تكون الدروس في المسارات تطبيقية أي أنك ستقوم بالتطبيق مع المدرب حتى تترسخ المعلومات لديك، أما المشاريع الفعلية فيوجد حوالي 7 مشاريع في مجالات مختلفة و أطر عمل مختلفة، و بهذه الطريقة يكون لديك علم بأغلب الطرق التي يمكنك من خلالها إنجاز مشروع بلغة بايثون.
-
أكيد إضافة Dropout و Batch Normalization لكل طبقة في الشبكة العصبية قد يؤثر سلبا على أداء النموذج، حيث يلعب كل منهما دور مختلف في تحسين التدريب، فمثلا Dropout يساعد في تقليل overfitting عن طريق تعطيل بعض الوحدات العصبية عشوائيا، ولكن تطبيقه على كل طبقة قد يؤدي إلى فقدان كبير للمعلومات وإبطاء عملية التعلم، و في المقابل Batch Normalization يعمل على استقرار التوزيع وتسهيل التدريب، ولكنه قد يتعارض مع Dropout، حيث إن الأول يحاول تثبيت التوزيع بينما الثاني يضيف عشوائية، لذا يفضل استخدام Batch Normalization في الطبقات العميقة لتحسين استقرار النموذج، بينما يستخدم Dropout بحذر في الطبقات المخفية فقط، مع تجنب وضعه مباشرة بعد Batch Normalization، و الجمع بينهما بشكل غير مدروس قد يؤدي إلى بطء التدريب وضعف الأداء، لذا من الأفضل تجربة تكوينات مختلفة لمعرفة التوازن الأمثل الذي يناسب البيانات والنموذج.
- 3 اجابة
-
- 1
-
-
لا يوجد مسار أو دورة تغطي كل شيء بشكل كامل، و بالتأكيد من الطبيعي أن تحتاج إلى التعمق بنفسك من مصادر خارجية، وهذا جزء أساسي من التعلم الفعال، أنصحك بالبحث في الكتب والمقالات العلمية، وحل المشاريع العملية، و حتى قراءة الأوراق البحثية في المجال، كما يمكنك الانضمام إلى مجتمعات المهتمين بالرؤية الحاسوبية على GitHub وReddit، حيث ستجد مناقشات قيمة وأحدث التطورات، و الأهم هو أن تحدد الجوانب التي تشعر أنها غير واضحة وتبحث عنها بشكل موجه خصوصا عبر المصادر المفتوحة.
-
تعتمد ResNet على الروابط المتبقية التي تسمح للبيانات بتجاوز بعض الطبقات، مما يساعد في حل مشكلة تراجع التدرج عند تدريب الشبكات العميقة، و بدلا من تعلم إخراج جديد بالكامل تتعلم كل طبقة الفرق بين المدخلات والإخراج المطلوب، مما يسهل تدريب شبكات عميقة جدا مثل ResNet-50 و ResNet-101 و ResNet-152. أما في DenseNet، كل طبقة تتصل بجميع الطبقات السابقة، مما يعزز إعادة استخدام الميزات ويجعل الشبكة أكثر كفاءة في التعلم، و هذا يقلل من عدد المعاملات المطلوبة مقارنة بـ ResNet، حيث تعتمد كل طبقة على الميزات المستخرجة سابقا بدلا من إعادة حسابها، و تساعد هذه البنية في تحسين انتقال المعلومات داخل الشبكة، مما يجعلها فعالة مع بيانات أقل.
- 5 اجابة
-
- 1
-
-
نعم يمكنك استخدام ReLU في الطبقات المخفية حتى لو كنت تعمل على مهمة تصنيف، و في الواقع ReLU هو أحد أكثر دوال التفعيل شيوعا في الطبقات المخفية لشبكات التعلم العميق، لأنه يساعد في التغلب على مشكلة تلاشي التدرج ويجعل عملية التدريب أكثر كفاءة مقارنة بدوال مثل Sigmoid أو TanhK، ولكن في الطبقة الأخيرة يعتمد اختيار دالة التفعيل على نوع التصنيف، حيث إذا كان التصنيف ثنائيا، فيفضل استخدام Sigmoid، أما إذا كان متعدد الفئات، فإن Softmax هو الخيار الأمثل.
- 3 اجابة
-
- 1
-
-
الفرق هو أن confusion_matrix تستخدم لحساب مصفوفة الالتباس فقط، بينما ConfusionMatrixDisplay تستخدم لعرضها بصريا، أي أن confusion_matrix ترجع مصفوفة من القيم العددية توضح أداء النموذج في تصنيف البيانات، لكنها لا تعرضها بشكل رسومي، أما ConfusionMatrixDisplay فهي أداة تأخذ هذه المصفوفة كمدخلات وتقوم برسمها كمخطط بياني باستخدام Matplotlib، مما يسهل تحليل الأخطاء وفهم أداء النموذج بصريا.
- 5 اجابة
-
- 1
-
-
يمكنك استخدام eval في PHP، ولكنه غير مستحسن لأنه قد يؤدي إلى ثغرات أمنية إذا كان هناك أي مدخلات غير آمنة بهذا الشكل: <?php $chance = "a > 0"; $a = 5; // قيمة المتغير a if (eval("return $chance;")) { echo "ok"; } else { echo "not ok"; } ?>
- 3 اجابة
-
- 1
-
-
وسائل الدفع التي يتم قبولها هي بايبال أو بطاقة فيزا، يمكنك الطلب من أحد أقربائك و الذين يملكون هذه البطاقة أن يقومو بالدفع بدل عنك، كما يمكنك التواصل مع مركز المساعدة لأي معلومات أخرى: https://support.academy.hsoub.com/conversations
-
نعم إذا كان العمود يحتوي على قيم فريدة لكل عينة ولا يحمل أي معلومات مفيدة للنموذج، فيمكن حذفه من البيانات قبل تدريب النموذج. وذلك لأن هذه القيم الفريدة لا تساعد النموذج في التعلم أو التعميم، بل قد تؤدي إلى overfitting إذا تم استخدامها، قبل الحذف تأكد أن العمود لا يحتوي على معلومات مفيدة.
- 7 اجابة
-
- 1
-
-
الأفضل يعتمد على الهدف والغاية من إنشائها لكن يبقى استخدام الأدوات الجاهزة مثل TensorFlow أو PyTorch هو الخيار الأمثل إذا كنت تريد توفير الوقت والتركيز على النتائج أو بناء نموذج عملي بسرعة ودقة أما بناء شبكة عصبية من الصفر ضروري فقط إذا كنت تدرس المفاهيم الأساسية أو تحتاج إلى تخصيص عميق لا توفره الأدوات الجاهزة وللتطبيق العملي يوصى باستخدام الأدوات الجاهزة لأنها فعالة ومدعومة بأفضل الممارسات يمكنك مراجعة أكثر من هنا:
- 6 اجابة
-
- 1
-
-
الشبكة العصبية (Neural Network) هي نموذج حوسبي مستوحى من طريقة عمل الدماغ البشري، تستخدم في تحليل الأنماط وحل المشكلات المعقدة وتتكون من طبقات من الوحدات (أو الخلايا العصبية) التي تعالج البيانات عن طريق تعلم الأوزان والانحيازات. بحيث تنقسم الشبكة إلى طبقة إدخال (لإدخال البيانات)، طبقات مخفية (للقيام بالمعالجة)، وطبقة إخراج (لإنتاج النتائج) وتستخدم الشبكات العصبية في تطبيقات مثل التعرف على الصور، معالجة اللغة الطبيعية، وأنظمة التوصية مثلا لإنشاء شبكة عصبية تصنف البيانات الثنائية، يمكن استخدام مكتبة TensorFlow تبنى الشبكة بطبقة إدخال بها 10 ميزات، طبقتين مخفيتين (32 و16 خلية عصبية)، وطبقة إخراج بوظيفة تفعيل Sigmoid وتدرّب الشبكة باستخدام خوارزمية Adam وخسارة Binary Crossentropy وتقيّم للحصول على دقة الأداء. فإنشاؤها يتم بعدة مراحل ببرمجة بسيطة باستخدام مكتبة مثل TensorFlow في Python أين تعرّف شبكة بها 3 طبقات واحدة تأخذ بيانات الصورة، واثنتان لتحليلها، والأخيرة تعطي النتيجة ثم تدرب الشبكة باستخدام صور معروفة كصور لقطط وكلاب حتى تتعلم ثم تختبرها على صور جديدة لترى النتيجة وهكذا وهذه المقالة تشرح مثالا جيدا أنصحك بمراجعته:
-
تحليل السلاسل الزمنية في بايثون هو دراسة البيانات التي تم تسجيلها على فترات زمنية متتالية لاكتشاف الأنماط، الاتجاهات، والتقلبات، بهدف التنبؤ بالقيم المستقبلية أو فهم العلاقات الزمنية ويستخدم في تحليل البيانات لفهم الاتجاهات (Trends) والموسمية (Seasonality) وتوقع البيانات المستقبلية مثل المبيعات أو الأسعار بالإضافة إلى كشف الشذوذ وتحسين اتخاذ القرارات بناء على البيانات الزمنية بحيث يتم استخدام مكتبات مثل pandas لمعالجة البيانات، وmatplotlib للتصور، وstatsmodels أو prophet لبناء النماذج الإحصائية والتنبؤية. و لغة بايثون تسهّل هذا التحليل بفضل أدواتها القوية والمرنة لمعالجة وتحليل السلاسل الزمنية بدقة وفعالية يمكن مراجعة هذه المقالة لمزيد من التفاصيل حول الموضوع:
-
المشكلة في استعلامك هو أنه يتحقق فقط من أقصى تاريخ، بينما المطلوب هو الحصول على آخر سعر قبل التاريخ المحدد لذا عدله للتالي: SELECT product_id, COALESCE( (SELECT new_price FROM Products p2 WHERE p2.product_id = p1.product_id AND p2.change_date <= '2019-08-16' ORDER BY change_date DESC LIMIT 1), 10 ) as price FROM Products p1 GROUP BY product_id; بحيث نستخدم استعلام فرعي للحصول على آخر سعر قبل '2019-08-16' و COALESCE يرجع 10 إذا لم يجد سعرا قبل التاريخ المحدد وأخيرا ORDER BY change_date DESC LIMIT 1 يجلب أحدث سعر.
- 3 اجابة
-
- 1
-