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

لوحة المتصدرين

  1. Ali Haidar Ahmad

    Ali Haidar Ahmad

    الأعضاء


    • نقاط

      9

    • المساهمات

      1068


  2. Sam Ahw

    Sam Ahw

    الأعضاء


    • نقاط

      4

    • المساهمات

      1388


  3. محمد المصري12

    محمد المصري12

    الأعضاء


    • نقاط

      2

    • المساهمات

      276


  4. Wael Aljamal

    Wael Aljamal

    الأعضاء


    • نقاط

      2

    • المساهمات

      6975


المحتوى الأكثر حصولًا على سمعة جيدة

المحتوى الأعلى تقييمًا في 08/04/21 في كل الموقع

  1. لست خريج هندسه حاسبات او تخصص قريب من المجال، شهادتي بعلم الاداره والمحاسبه لدي معرفه باساسيات برمجة الفيجوال بيسك وقواعد البيانات قديما اتوجه الي دراسة جاده تجعلني متمكن في مجال برمجة دوائر التحكم الخاصه بمحركات مثل محركات الدرون او المحركات الاخري ايضا ماهي اللغات التي تناسب تطبيقات تتعامل مع نظام الgps وتسحب منها بيانات وتعمل لها معالجه معينه وتخرج نتائج وايضا سهله بالتعلم
    1 نقطة
  2. هناك endpoint من نوع post، يتم إرسال إليها قيمة درجة الحرارة كل 5 ثواني مثلا، ويتم تخزين هذه القيم في قاعدة البيانات طبعا، أريد عرض هذه القيم في المتصفح ويتم عرضها، عند إعطاء قيمة جديدة، أريد أن تظهر القيمة الجديدة مباشرة دون الحاجة لتحديث الصفحة باستخدام laravel ( API ) ملاحظة / عن طريق ال API وليس Server Side Rendering وشكرا مقدما
    1 نقطة
  3. السلام عليكم ورحمة الله وبركاته أثناء نطبيقي على ال css قمت بوضع خلفية سوداء على الخلفية الأصلية وجعلت ال opacity الخاص بها .3 لكن النصوص الخاصة بهذه الصفجة أصبحت جميع ألوانها باهتة أرجو حل هذه المشكلة ولكم جزيل الشكر index.zip
    1 نقطة
  4. أود تحويل مصفوفة Numpy إلى متجه وحدة unit vector. وبشكل أكثر تحديدًا ، أنا أبحث عن إصدار مكافئ للدالة التالية: def normalize(v): norm = np.linalg.norm(v) if norm == 0: return v return v / norm هل هناك شيء من هذا القبيل في numpy؟
    1 نقطة
  5. اريد مقاله لفهم live chat in laravel باستخدام package
    1 نقطة
  6. السلام عليكم يا اخواني انا اشتركت في دورة واجريت طلب شراء كم يستغرق طلب الشراء حتى يتم؟ افيدوني وفقكم الله
    1 نقطة
  7. هل دورة تطوير التطبيقات باستخدام لغة java script ودورة تطوير تطبيقات الجوال باستخدام تقنيات الويب تمكني من إنشاء تطبيقات android وios متنوعة في مجالات مختلفة وليست تطبيقات معينة بحد ذاته وهل كلاً من الدورتان تمكني من إنشاء تطبيقات جوال متكاملة بمعنى أن تكون جاهزة للرفع على google play و app store وتحميلها من على المنصتان وهل يجب أن أكون على معرفة جيدة جداً للغة الإنجليزية لتعلم الدورتان أم لا يشترط وهل دورة تطبيقات الجوال باستخدام تقنيات الويب يجب أن أكون على معرفة بأساسيات البرمجة أم لا يشترط؟
    1 نقطة
  8. في كل من الدورتين يتم لبناء تطبيقات الجوال IOS - Android باستخدام التقنيات المتاحة من كل تقنية تابعة لكل منصة التطبيقات التي يتم شرحها في الدورة، تستخدم العديد من المكتبات البرمجية وتمكن من التطبيق على طرق مختلفة لحل المشاكل البرمجية في التصميم (كيفية ترتيب بنية ملفات المشروع و تضمين الملفات و تسلسل كتابة الشيفرة و كيفية تبادل البيانات بين مكونات التطبيق و بين التطبيق و المخدم وقواعد البيانات) مما يضع الطالب أما تجربة عملية لكل تفاصيل عملية البرمجة في كل من التقنيات لتي يتدرب عليها. وكل دورة تشرح عدد من التطبيقات المختلفة بالطبع. جميع الدورات في أكاديمية حسوب مشروحة باللغة العربية الفصيحة ومفهومة وواضحة لتكون متاحة لكل العرب وليس عليك أن تكوني جيدة بالانكليزية للنجاد بالدورة، إنما اللغة الانكليزية مطلوبة بشكل عام ضمن مجال البرمجة. يتم شرح الأساسيات لكل دورة، على الأغلب لن تضطر لتعلم الأساسيات من مصدر خارجي.. على كل حال المسارات الأساسية في كل دورة متاحة لجميع الطلاب الذين اشتروا دورة واحدة على الأقل من دورات أكاديمية حسوب، ويوجد شرح لأساسيات الويب ويمكنك متابعته إن دعت الحاجة، ولاتنسى أن لتعلم البرمجة على الطالب أن يمتلك مهارات البحث و حل المشكاكل فلا بأس أن يعتمد على نفسه في بعض الأحيان، كما يمكن طرح أي سؤال وسيتم الإجابة عليه من قبل المدربين المتابعين للدورات.
    1 نقطة
  9. سلام عليكم الان انا عامل كود يظهرلي محتويات بند ما بناء على بياناته في الداتابيز و الدنيا تمام بفضل الله اللي مش ظابط معايا اني حبيت احط شرط انه لو حقل image في قاعدة البيانات فاضي ، استدعي لي صورة افتراضية <?php if (isset($row['image']) && !empty($row['image']) && $row['image'] == null) { echo '<img style="max-height: 100px !important; margin: 0 auto;" src="assets/images/no-image.png" alt="#">'; } else { echo '<img style="max-height: 100px !important; margin: 0 auto;" class="Sleeve-image" src="" alt="#">'; } ?> و دي صورة الداتابيز لما بستدعي كود 3 منطقي جدا يجيبلي صورته ، لكن اللي مش منطقي اني لما استدعي كود 1 و 2 و اللي حقل image فاضي قدامهم انه ما يقراش الشرط ايه الغلط اللي انا عملته احبائي؟
    1 نقطة
  10. في البداية انصحك بإستخدام اطار عمل مثل vue.js أو React.js لتسهيل العمل ولكن في حالتك إن اردت فعل ذلك بإمكانك فعلها بإستخدام الجافاسكريبت الفكرة هنا هي تعريف متغييرين اثنين الأول ستسميه مثلاً ar والآخر ستسميه مثلاً en وبداخل كل متغيير ستضيف كائن وفي كل كائن ستضيف عدة Properties ستضيف فيها جميع النصوص الكلمات التي تريدها بعدها سنقوم بتعريف متغيير اخر وهذا المتغيير سيتم فيه تحديد اللغة التي تريدها واخيراً بعدها ستقوم بإنشاء دالة من خلالها ستقوم بتغيير هذا المتغيير دعنا نأخذ المثال للتضح لك الصورة بشكل افضل اولاً HTML <h2 id="hello"></h2> <!-- هنا سيظهر النص --> <p id="text"></p> <!-- هنا لتتغير اللغة عند الضغط --> <button onclick="setLang('en')">English</button> <button onclick="setLang('ar')">عربي</button> ثانياً : الجافاسكريت // هنا حيث نقوم بتخزين الكلمات والعبارات التي نريدها لكل لغة في متغيير منفصلين var ar = { hello: "مرحباً!!", text: 'تغيير اللغة' }; var en = { hello: 'Hello!!', text: 'Change language' }; var language = ar; // تحديد اللغة // تغيير نص HTML function changeText(){ for (const key in language) { document.getElementById(key).innerText = language[key]; } } changeText(); // تغيير اللغة عند الضغط على ازرار تغيير اللغة var setLang = function (lang){ lang === 'ar' ? language = ar : language = en; changeText(); }
    1 نقطة
  11. بيقرا الصورة من class sleeve-image اخي الفاضل var currentClothModel = 0; $('#m7').on('show.bs.modal', function (e) { //var $modal = $(this); currentClothModel = e.relatedTarget.id; var selectedCloth = $(`#d_${currentClothModel} option:selected`); $(".view-table").show(); var name = selectedCloth.attr("name"), fiber = selectedCloth.attr("fiber"), height = selectedCloth.attr("height"), width = selectedCloth.attr("width"), degree = selectedCloth.attr("degree"), pantone = selectedCloth.attr("pantone"), size = selectedCloth.attr("size"), weight = selectedCloth.attr("weight"), des = selectedCloth.attr("des"), factory = selectedCloth.attr("factory"), price = selectedCloth.attr("price"), image = selectedCloth.attr("image"); $(".name").html(name); $(".fiber").html(fiber); $(".height").html(height); $(".width").html(width); $(".degree").html(degree); $(".pantone").html(pantone); $(".size").html(size); $(".weight").html(weight); $(".des").html(des); $(".factory").html(factory); $(".price").html(price); $(".Sleeve-image").attr("src",image); }); زي ما في الصور اللي في البوست ، هو قاري فعلا الصورة اللي بالداتابيز اللي قدام كود رقم 3 المشكلة مش في ال src خالص
    1 نقطة
  12. كل شيء سليم ولكن لا توجد صورة في خاصية src في السطر التالي echo '<img style="max-height: 100px !important; margin: 0 auto;" class="Sleeve-image" src="" alt="#">'; حاول وضع صورة حتى تظهر و الخطأ الذي ظهر لك بسبب أنه لا توجد صورة , حاول رجاء وضع صورة و أخبرني بالنتيجة.
    1 نقطة
  13. عندما أوحاول إنشاء ملف c++ في أنريل أنجن يضهر رسالة خطأ مكتوب فيها أنهو تم أنشاء الملف لاكن فشل في ترجمة
    1 نقطة
  14. السلام عليكم ورحمة الله وبركاته انا مبتدئ في البرمجة وشغال على فريم وروك laravel وحولت قاعدة البيانات من mysql الى mongodb لأني ابحث عن قاعدة بيانات اكثر مرونه وتتحمل عدد ضخم من البيانات , واشتغل معي بدون مشاكل ما عدا VerifiesEmails و reset password . السؤال : هل لارافل يعمل بشكل صحيح مع mongodb أم أعود الى mysql افضل . وهل يوجد طريقة لإعادة عمل VerifiesEmails و reset password , علماً بأن الباكيج اللي نزلته للتعامل مع mongodb هو jenssegers/mongodb ولكم تحياتي
    1 نقطة
  15. لقد تم ذكرها أيضاً في التوثيق الرسمي أنه يجب عليك استخدام use Illuminate\Contracts\Auth\MustVerifyEmail أيضاً في المودل الخاص بالمستخدم كالتالي: use Illuminate\Contracts\Auth\MustVerifyEmail; class User extends extends Eloquent implements AuthenticatableContract,CanResetPasswordContract, MustVerifyEmail { // ... } كما يجب عليك التأكد من وجود الحقل email_verified_at ضمن مستند المستخدم، وعندها سيقوم لارافيل بإرسال البريد الالكتروني لأي مستخدم يقوم بالتسجيل في الموقع. كما يمكنك الاطلاع على عملية التحقق من البريد الالكتروني الموجودة في الملف Auth\VerificationController والتي يمكنك من خلالها تسجيل مسارات للتحقق جديدة من خلال تمرير الخيار verify كالتالي: Auth::routes(['verify' => true]); أرجو منك قراءة التوثيق الرسمي في لارافيل فهو يحوي جميع هذه التفاصيل بالإضافة لتفاصيل أخرى قد تحتاجها. بالتوفيق.
    1 نقطة
  16. في حال كان الموقع صغير الحجم والمحتوى بداخله ثابت (ٍStatic) أي لا يتم التواصل مع طرف الخادم لجلب المعلومات، يمكنك استخدام خاصيات الإخفاء والإظهار للنصوص التي تدعمها CSS مع تكرار نفس الصفحة لكل لغة: display: block display: none مثال بسيط: <html> <head> <style type="text/css"> body.fr > p[lang=en] { display: none; } body.en > p[lang=fr] { display: none; } </style> </head> <body class="en"> <button onclick="document.body.className='en'">English</button> <button onclick="document.body.className='fr'">French</button> <p lang="en">English text here</p> <p lang="fr">French text here</p> </body> </html> ولكن لا أعتقد أنها طريقة عملية خصوصاً في حال وجود كم كبير من النصوص والعناصر. ولا أعتقد أيضاً أنه يوجد أي طريقة عملية بالاعتماد فقط على HTML و CSS. كما أنه لن يتم حفظ اللغة التي سيختارها المستخدم في المتصفح وبالتالي عند أي عملية انتقال من صفحة لأخرى سيتم إعادة تعيين النصوص كما كانت. باستخدام الجافاسكريبت ستصبح المهمّة أسهل بكثير، حيث يمكننا تخزين اللغة التي اختارها المستخدم ضمن المتصفح localStorage و sessionStorage وأيضاً ستتيح لنا العديد من الطرق للتغيير بين هذه اللغات، ومن أبسط هذه الطرق هو جمع المحتوى النصي في ملفات JSON وتغيير المحتوى بناءً على اللغة التي تم اختيارها
    1 نقطة
  17. يخبرك الخطأ بأنه يجب أن تقوم بتضمين واجهة CanResetPassword ضمن مودل المستخدم، وفي التوثيق الرسمي في لارافيل تجد هذه المعلومات في القسم Resetting Passwords ضمن Database Considerations، فيصبح الكود في User.php لديك بشكل مشابه للتالي: use Illuminate\Auth\Authenticatable; use Jenssegers\Mongodb\Eloquent\Model as Eloquent; use Illuminate\Auth\Passwords\CanResetPassword; use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract; use Illuminate\Contracts\Auth\CanResetPassword as CanResetPasswordContract; class User extends Eloquent implements AuthenticatableContract,CanResetPasswordContract { use Authenticatable, CanResetPassword; ... }
    1 نقطة
  18. نعم لا يوجد أي مشكلة باستخدام قاعدة بيانات mogodb مع laravel، ويمكنك الاطلاع على بعض الأمثلة الموجودة ضمن التوثيق الرسمي ل mongodb عن كيفية استخدامها بالشكل الصحيح مع إطار العمل Laravel. ومن ناحية استخدام الاستعلامات لن تجد فرق كبير بما أنك تستخدم Eloquent الموجود في لارافل لأن الحزمة jessegers/mongodb تمكنك من استخدام Eloquent أيضاً، أما من ناحية بعض العمليات مثل reset password وغيرها، فيمكنك أيضاً إجرائها بشكل مماثل على mongodb ولكن يجب عليك التأكد من اسماء الحقول التي ستقوم بتعريفها ضمن schema وأيضاً أنماط هذه البيانات، فهنا يجب عليك التأكد من وضع أنماط صحيحة وإلا ستواجه العديد من المشاكل بسبب مرونة هذا النوع من قواعد البيانات ولن تكتشف الخطأ بسهولة. وبما أنك تستخدم الحزمة jessegers/mongodb باستطاعتك استخدام Authenticable base model والذي سيقوم باستبدال Illuminate\Foundation\Auth\User الافتراضي الموجود في لارافيل ليتوافق مع مستند المستخدم الذي ستقوم بتعريفه: use Jenssegers\Mongodb\Auth\User as Authenticatable; class User extends Authenticatable { .... } كما يمكنك التحكّم بتغيير اسماء الحقول عن الاسماء الافتراضية في حال احتجت ذلك لإتمام بعض الوظائف، مثلاً ضمن عملية إعادة تعيين كلمة المرور في ملف Auth/ResetsPasswordController.php يمكنك تغيير اسماء الحقول لتتناسب مع الاسماء التي قمت بتعريفها في بنية schema لديك كالتالي: protected function credentials(Request $request) { $data = $request->only( 'password', 'password_confirmation', 'token' ); $data['userEmail'] = $request->get('email'); return $data; } ويمكنك إيجاد بعض الأمثلة على الانترنت في حال واجهت أي مشكلة في تطبيق بعض الخصائص
    1 نقطة
  19. انا سيدة عمري ٤٢ سنة واعشق كل ما له علاقة بالتكنولوجيا وعلوم الحاسب. اريد ان اتعلم البرمجة ولكن يعيقني مشكل الرياضيات. فكلما بدأت تعلم الخورزميات يوقفني مشكل الرياضيات. دورة علوم الحاسب هي ما يناسب ميولي ولكن اختاح لتاسيس مسبق في الرياضيات. لهذا فكرت في اختيار الويب وموزاة مع ذلك اتأسس صح في الرياضيات. اريد ان انظم لدورة برمجة مواقع الويب هل تنصحوني بدورة واجهات المستخدم مع أني أميل للابتكار وليس لتنسيق الألوان او الأشكال. اهتمامي أكثر بخطوات أي برنامج وكيف يعمل وكيف الخطوات. هذا هو شغفي. عندي افكار برمجية كثيرة ولي سنين ابدأ وأتوقف. أحتاج لمن يرشدني ويعينني على تجاوز العقبات. أريد أن أتابع معكم أكثر من دورة . هل عندكم خصومات؟ جزاكم الله خيرا
    1 نقطة
  20. إن دورة علوم الحاسوب يتوجب حضورها قبل برمجة الويب، لأنها تحوي مسار أساسيات البرمجة (تعلم جافاسكربت) وقواعد البيانات وأساسيات الويب أيضا، مما يسهل عليكِ دراسة اي دورة تخصصية أخرى. إن باقِ الدورات تركز على عمل مشاريع كبيرة، ودورة علوم الحاسب تشرح الاساسيات بعدة مجالات مختلفة و تؤسس لجعل الطالب يتفهّم البرمجة بشكل أفضل.
    1 نقطة
  21. شكرا على اهتمامكم بسؤالي. ماذا لو اتجهت اولا لبرمجة الويب بلغة php او جافاسكريبت؟ هل سيناسب ميولي. بعدها أتجه لدورة علوم الحاسب
    1 نقطة
  22. الدالة BinaryAccuracy هي احدى الطرق التى يمكن حساب دقة النموذج Accuracy. وتعتمد على قياس نسبة المرات الصحيحة التي استطاع النموذج ان يتنبأها بدلالة العلامات labels الصحيحة للداتا. على سبيل المثال، لو أن العلامات الصحيحة هي [1, 1, 0, 0]، وما تنبأ به النموذج هو [0.98, 1, 0, 0.6]، لذلك فإن نسبة التوقع هي 75%، ولو أن الاوزان كانت [1, 0, 0, 1]، حينها فإن binary accuracy ستكون 50% هذا المقياس يقوم بتكوين متغيرين وهما total و count، تستخدم total في ايجاد عدد العلامات labels في الداتا كلها ، اماcount تستخدم لحساب عدد المرات التي تكون القيم المتوقعة فيها هي القيم الصحيحة، ويتم ارجاع المعدل عن طريق قسمة count على total في شكل معيار احادي binary accuracy. اما عن استخدامها في keras فهي كالتالي: tf.keras.metrics.BinaryAccuracy( name="binary_accuracy", dtype=None, threshold=0.5 ) حيث: name: هو اسم المعيار وهو اختياري dtype: وهو نوع البيانات في الخرج وهو ايضا اختياري. threshold: هو القيمة التي تفصل بين حساب اذا كان التوقع صحيح أم خطأ، وتمون قيمته من 0 ل 1، هذه القيمة يتم حسابها بطرقة تطبيقة عن طريق تجربة عدة ارقام واختيار الافضل. وفي استخدامها لتدريب النموذج، تستخدم ف اخر طبقة كالتالي: model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['BinaryAccuracy'])
    1 نقطة
  23. تقوم هذه الدالة بحساب مدى دقة النموذج، وتستخدم مع مهام التصنيف الثنائي، وتختلف عن مقياس الدقة accuracy (يمكنك الاطلاع عليها من الرابط في الأسفل) في أنها تسمح لنا بتحديد عتبة للتوقع أي ال "threshold" أي تعطينا قدرة أكبر في التحكم بعملية التوقع، وترد هذه الدالة قيمة عشرية بين 0 و 1 بحيث كلما اقتربت القيمة من 1 كانت دقة النموذج أعلى. وتماماً كما في الدالة Accuracy تقوم هذه الدالة بحساب عدد المرات التي قام فيها نموذجنا بتوقع القيم بشكل صحيح (عدد مرات الإصابة في التنبؤ أو بمعنى آخر عدد مرات التطابق) وتقسمها على عدد التوقعات الكلية (الصحيحة والخاطئة أي حالات التطابق وعدم التطابق). والمثال التالي سيوضح كل شيء، حيث قمت في البداية بكتابة كود بشكل يدوي لتحقيق هذا التابع ثم استخدمت كيراس: import numpy as np import tensorflow as tf # إنشاء مصفوفتين واحدة تمثل القيم المتوقعة والأخرى الحقيقية yTrue = np.array([[1],[0],[0],[1],[1]]) print("yTrue: ",yTrue,sep="\n") Pred = np.array([[0.6],[0.2],[0.4],[0.95],[1.0]]) print("Pred: ",Pred,sep="\n") Threshold = 0.5 # تابع لمدا لتعيين 1 في حالة كانت القيمة المتوقعة أكبر من العتبة و0 إذا كانت أقل منها pM = lambda x : 0 if x <= Threshold else 1 # تطبيق التابع السابق على كل العينات yPred = Pred.astype(int) for i in range(len(yPred)): yPred[i] = pM(Pred[i]) print("predicted values: ",yPred,sep="\n") print("accurately predicted : ",sum(yPred == yTrue),sep="\n") print("len: ",len(yPred)) # الآن نقوم بقسمة عدد العينات التي تم توقعها بشكل صحيح على العدد الكلي للعينات BinaryAccuracy = sum(yPred == yTrue)/len(yPred) # باستخدام كيراس Binary Accuracy حساب metric = tf.keras.metrics.BinaryAccuracy(threshold = Threshold) metric.update_state(yTrue,yPred) metric.result().numpy() """ yTrue: [[1] [0] [0] [1] [1]] Pred: [[0.6 ] [0.2 ] [0.4 ] [0.95] [1. ]] predicted values: [[1] [0] [0] [1] [1]] accurately predicted : [5] len: 5 1.0 # 100% """ هذه الدالة لها الشكل التالي في كيراس: tf.keras.metrics.BinaryAccuracy( name="binary_accuracy", dtype=None, threshold=0.5 ) # threshold هي العتبة ويمكننا استخدامها في نماذجنا مع الدالة compile كالتالي: model.compile(optimizer='sgd', loss='mse', metrics=[tf.keras.metrics.BinaryAccuracy()]) # أو model.compile(optimizer='sgd', loss='mse', metrics=["BinaryAccuracy"]) انظر للمثال التالي، حيث سأستخدمها مع مسألة تصنيف ثنائي: from keras.layers import Embedding from keras.datasets import imdb from keras import preprocessing max_features = 10000 maxlen = 20 (x_train, y_train), (x_test, y_test) = imdb.load_data( num_words=max_features) x_train = preprocessing.sequence.pad_sequences(x_train, maxlen=maxlen) x_test = preprocessing.sequence.pad_sequences(x_test, maxlen=maxlen) from keras.models import Sequential from keras.layers import Flatten, Dense model = Sequential() model.add(Embedding(10000, 8, input_length=maxlen)) model.add(Flatten()) model.add(Dense(1, activation='sigmoid')) model.compile(optimizer='rmsprop', loss='binary_crossentropy', metrics=['BinaryAccuracy']) model.summary() history = model.fit(x_train, y_train, epochs=10, batch_size=32, validation_split=0.2)
    1 نقطة
  24. استخدامك للتضمين هنا غير صحيح ، فعندما تكون مدخلاتك لها قيم سلبية، يكون الترميز غير صالح لاستخدام مع طبقة التضمين، يحب أن يكون ترميز الكلمات في المستندات عبارة عن أعداد صحيحة موجبة حصراً (كل كلمة فريدة يتم ربطها بعدد صحيح يمثلها). حيث أن طبقة التضمين هي طبقة تتيح لنا تحويل كل كلمة إلى متجه بطول ثابت وبحجم محدد. المتجه الناتج هو متجه كثيف "Dense" له قيم حقيقية بدلاً من 0 و 1 فقط كما في الترميز One-Hot. يساعدنا الطول الثابت لمتجهات الكلمات على تمثيل الكلمات بطريقة أفضل وأكثر فعالية مع أبعاد مخفضة. وهذه المتجهات تكون ممثلة في فضاء Vector space مهيكل ويعكس المعاني الدلالية لكل كلمة. ويمكن اعتبارها كقاموس يقوم بربط أعداد صحيحة (كل كلمة ترمز في البداية كعدد صحيح) بمتجه كثيف. أي أنها تأخذ كدخل أعداد صحيحة ثم تبحث في هذا القاموس على المتجه الذي يقابله في القاموس الداخلي، ويعيد هذا القاموس. Word index --> Embedding layer --> Corresponding word vector إذا كون مدخلاتك تحوي أعداداً سلبية يعني أن استخدام التضمين غير صحيح هنا. إن التضمين يعمل مع أي نوع من مدخلات الأعداد الصحيحة الموجبة، ولكن ليس مع المدخلات العامة.
    1 نقطة
  25. لن يمكنك فعل ذلك بإستعمال التابع load , لأن هذا التابع يسمح بتحميل HTML أو محتوى نصي من الخادم ثم إضافته إلى عنصر DOM . أما لتحقيق غرضك فلن نحتاج إلا لتحديد العنصر الحاوي للمحتوى ثم إضافته إلى العنصر div . سيمكن إستعمال التابع append لهذا . رغم أن فكرة تحميل محتوى موجود داخل الـ div و إعادة تضمينه في نفس العنصر غير منطقية إلا أن الشيفرة ستكون مشابه للتالي : <div id="load_posts"></div> <script> setInterval(function(){ var content = $('#load_posts').html(); // $('#load_posts').html(''); لحذف المحتوى و إعادة تحميله $('#load_posts').append(content); }, 1000); </script>
    1 نقطة
  26. باختصار هذه الخوارزمية تقوم بتسريع أداء نموذجك (أي تجعله يتقارب إلى القيم الصغرى الشاملة لل Cost Function بشكل أسرع وأدق) أي أنها تحسين لخوارزمية الGD بأنواعها المختلفة Batch-GD و Mini-Batch GD و Stocastic GD ففي هذه الخوارزميات ولاسيما الميني والستوكاستيك يكون مسار التدرج إلى القيمة الصغرى الشاملة متعرجاً (متذبذباً أي اتجاهه ليس بشكل مباشر إلى القيمة الصغرى) وبالتالي يكون النموذج أبطأ وأقل دقة. أما ADAM فهو تحسين ل GD حيث يستخدم فكرة ال Exponentially wighted average ويطبقها في عملية تحديث الأوزان التدريبية وبالتالي تصبح التدرجات gredients أو قيم المشتقات معتمدة على قيم المشتقات السابقة مما يجعل المسار العام للتدرجات أفضل وتخفف من التذبذبات في مسار خوارزمية ال GD، انظر للشكل التالي الذي يوضح كلامي: حيث أن النقطة الحمراء تشير إلى القيمة الصغرى الشاملة GM لدالة التكلفة، لاحظ كيف أن آدم يقوم بجعل المسار موجه مباشرة (يخفف التعرجات) إلى القيمة GM، وبشكل أكثر تفصيلاً: هي اختصار ل Adaptive moment estimation، وتقوم فكرة خوارزمية التحسين هذه على دمج خوارزمية التحسين RMSprop مع خوارزمية التحسين Momentum أي تجمع بينهما، ويعتبر هذه المحسن إلى جانب RMSprop أفضل خوارزميات التحسين الموجودة ويناسبان أغلب المشاكل "المصدر آندرو ج" و "فرانسوا كوليت"، حيث تعتمد على نفس أفكار الخوارزميتين السابقتين (حساب ال Exponentially wighted average للمشتقات السابقة (المتوسطات الأسية)) لكنها تضيف لهم فكرة ال bias correction وبالتالي تعطي تحسن أكبر في المراحل الابتدائية للتدريب. وبشكل عام لايهمك الخوض كثيراً في تفاصيلها فكيراس وتنسرفلو يجعلان استخدامها بسيطاً: keras.optimizers.Adam( learning_rate=0.001, beta_1=0.9, beta_2=0.999, epsilon=1e-07, amsgrad=False, name="Adam", **kwargs ) الوسيط الأول هو معامل التعلم (حجم الخطوة)، الوسيط الثاني أي beta1 هو الوسيط الخاص بال momentum أما الوسيط الثالث فهو قيمة بيتا الخاصة ب RMSprop ولا أنصحك بتغيير قيمتهما فهما القيمتين المثاليتين في 95% من الحالات. الوسيط الرابع هو epsilon وهي قيمة تستخدم مع المومينتوم وال ار ام اس بروب وتستخدم من أجل منع حصول القسمة على صفر (هذه انسى أمرها لاتهمنا في أي شيئ) لكن أنصحك بتغيير القيمة الافتراضية إلى الأس 8 أو 9 بدلاً من الأس 7 لأسباب رياضية بحتة. والوسيط الأخير لتحديد فيما ما إذا كان سيتم تطبيق متغير AMSGrad لهذه الخوارزمية من الورقة البحثية التي صدرت عام 2018 بعنوان "On the Convergence of Adam and beyond" أم لا (هي تحسين على adam) ولاستخدامها مع نماذجك يمكنك القيام بذلك ببساطة من خلال تمريرها للدالة compile، بالشكال التالي: model.compile( optimizer=keras.optimizers.Adam( learning_rate=0.001, beta_1=0.9, beta_2=0.999, epsilon=1e-07, amsgrad=False, name="Adam", ) # أو model.compile( optimizer="Adam" ) انظر للنموذج البسيط التالي، حيث استخدمها في مهمة NLP لتحليل مراجعات الأفلام على مجموعة بيانات IMDB: from keras.datasets import imdb from keras import preprocessing import keras max_features = 1000 maxlen = 20 (x_train, y_train), (x_test, y_test) = imdb.load_data( num_words=max_features) x_train = preprocessing.sequence.pad_sequences(x_train,maxlen=maxlen) x_test = preprocessing.sequence.pad_sequences(x_test, maxlen=maxlen) from keras.models import Sequential from keras.layers import Dense model = Sequential() model =Sequential() model.add(Dense(16, activation='relu',input_shape=(20,))) model.add(Dense(16, activation='relu')) model.add(Dense(1, activation='sigmoid')) model.compile(optimizer=keras.optimizers.Adam( learning_rate=0.001, beta_1=0.9, beta_2=0.999, epsilon=1e-07, amsgrad=True, name="Adam", ) , loss='binary_crossentropy', metrics=['acc']) history = model.fit(x_train, y_train, epochs=3, batch_size=64, validation_split=0.2)
    1 نقطة
  27. هي دالة رياضية نستخدمها كدالة تنشيط، مدخلاتها شعاع من الأعداد، وخرجها شعاع من القيم الاحتمالية، أي تقوم بتحويل متجه الأعداد إلى متجه احتمالي، حيث تتناسب احتمالات كل قيمة مع المقياس النسبي لكل قيمة في المتجه. ونستخدمها لمهام التصنيف المتعدد، حيث نضعها في آخر طبقة. ولها الشكل التالي: أي تأخذ كل قيمة من قيم شعاع الدخل على حدى، ثم تقوم بحساب ال exp لهذا العدد ثم تقسم الناتج على المجموع الكلي لل exp لكل العينات (وبالتالي الخرج سيكون عبارة عن توزيع احتمالي). ولفهم هذا الكلام أكثر لنأخذ المثال التالي، لدينا 3 أصناف من الكرات (x,y,z) بما أنه لدينا 3 أصناف وبالتالي خرج الشبكة يجب أن يكون 3 قيم (أي يجب أن يكون لديك 3 خلايا في الخرج) بحيث كل قيمة تعبر عن احتمالية أن العينة هي إحدى الأصناف، حسناً لنرمز ل x ب 0 و y ب 1 و z ب 2 وبالتالي يمكن تمثيلها ك One-hot بالشكل التالي : x0=[1,0,0] y0=[0,1,0] z0=[0,0,1] ونحن لدينا 3 عصبونات في آخر طبقة، وبالتالي سيمثل العصبون الأول احتمالية كون العينة (الكرة) تمثل الصنف x، والعصبون الثاني احتمالية كون العينة (الكرة) تمثل الصنف y، والعصبون الأخير احتمالية كون العينة تنتمي للصنف z. فمثلاً من أجل عينة ما، عند الوصول لآخر طبقة سيتم إدخال ناتج آخر طبقة ( هنا شعاع من 3 قيم) إلى هذا التابع وبالتالي يصبح الخرج احتمالياً كما يلي: طبعاً القيم الاحتمالية التي وضعتها بشكل تقديري، لكن حتماً سيكون المجموع1، الآن سأكتب لك إياها بكود بسيط: # transform values into probabilities from math import exp # calculate each probability summation=(exp(7.0) + exp(2.0) + exp(0.1)) p1 = exp(7.0) / summation p2 = exp(2.0) / summation p3 = exp(0.1) / summation print(p1, p2, p3) # 0.9923138027987766 0.006686157809719105 0.0010000393915043245 # sum of probabilities print(p1 + p2 + p3) # 1.0 انظر كيف سأقوم بتحقيق هذا التابع، وسأطبقه على نفس السؤال: from numpy import exp def softmax(vector): e = exp(vector) return e / e.sum() # define data data = [7.0, 2.0, 0.1] # التحويل result = softmax(data) print(result) # probabilities # [0.9923138 0.00668616 0.00100004] في كيراس وتنسرفلو تتواجد في الموديول التالي (لاحظ أنه موجود ضمن موديول الطبقات): tf.keras.layers.Softmax() ويمكنك تمريرها لنموذجك كدالة تنشيط في آخر طبقة عندما تكون المهمة مهمة تصنيف، كما في المثال التالي، حيث أنه لدينا مهمة تصنيف متعدد ل 46 صنف: from keras.datasets import reuters (train_data, train_labels), (test_data, test_labels) = reuters.load_data( num_words=10000) # ترميز البيانات import numpy as np def vectorize_sequences(sequences, dimension=10000): results = np.zeros((len(sequences), dimension)) for i, sequence in enumerate(sequences): results[i, sequence] = 1. return results x_train = vectorize_sequences(train_data) x_test = vectorize_sequences(test_data) from keras.utils.np_utils import to_categorical one_hot_train_labels = to_categorical(train_labels) one_hot_test_labels = to_categorical(test_labels) # بناء النموذج from keras import models from keras import layers model = models.Sequential() model.add(layers.Dense(64, activation='relu', input_shape=(10000,))) model.add(layers.Dense(64, activation='relu')) model.add(layers.Dense(46, activation='softmax')) # هنا الطبقةالأخيرة model.compile(optimizer='rmsprop', loss='categorical_crossentropy', metrics=['accuracy']) # التدريب x_val = x_train[:1000] partial_x_train = x_train[1000:] y_val = one_hot_train_labels[:1000] partial_y_train = one_hot_train_labels[1000:] history = model.fit(partial_x_train, partial_y_train, epochs=20, batch_size=512, validation_data=(x_val, y_val)) وللتنويه يمكنك أيضاً استخدامها في الطبقات الخفية لكنها لن تعطيك نتائج مقبولة، مقارنة بالدوال الأخرى (استخدمها فقط كدالة تنشيط في الطبقة الأخيرة).
    1 نقطة
  28. يجب عليك أولاً أن تقوم باستيراد الطبقات قبل استخدامها، ومشكلتك هي أنك لم تقم باستيراد الطبقة Dense. فظهر لك هذا الخطأ، وبالتالي يجب أن تضيف إلى نموذجك السطر التالي، من Keras API حيث أنها موجودة في الموديول: keras.layers.Dense # وبالتالي نكتب from keras.layers import Dense أو من تنسرفلو حيث تكون في الموديول التالي: tensorflow.keras.layers.Dense from tensorflow.keras.layers import Dense ويمكنك استيراد أي طبقة أخرى بنفس الطريقة، مثلاً نريد أن نقوم باستيراد ال'طبقة LSTM أو GRU أو conv..إلخ: # نكتب from keras.layers import Conv2D,LSTM,GRU # أو from tensorflow.layers import Conv2D,LSTM,GRU # أو import tensorflow as tf from tf.layers import Conv2D,LSTM,GRU # أو import tensorflow.layers as layers from layers import Conv2D,LSTM,GRU
    1 نقطة
  29. تكون Numpy matrices ثنائية الأبعاد حصراً، بينما تكون المصفوفات المعقدة (ndarrays) أي ذات N أبعاد. وكائنات Matrix هي صف فرعي من ndarray ، لذلك فهي ترث جميع ال attributes والتوابع من ndarrays. إن الميزة الرئيسية ل Numpy matrices أنها توفر طريقة مريحة لضرب المصفوفات، أما بالنسبة لمصفوفات نمباي فإنه بدءاً من Python 3.5 أصبحت نمباي تدعم ضرب المصفوفات بطريقة مريحة عن طريق استخدام المعامل "@"، انظر: import numpy as np x = np.mat('2 2; 0 3') print(x) """ [[2 2] [0 3]] """ y = np.mat('4 1; 4 2') print(y) """ [[4 1] [4 2]] """ print(x*y) """ [[16 6] [12 6]] """ #ndarray استخدام نمباي import numpy as np x = np.array([[2,2], [0 ,3]]) print(x) """ [[2 2] [0 3]] """ y = np.array([[4, 1], [4, 2]]) print(y) """ [[4 1] [4 2]] """ print(x@y) # print(np.dot(x,y)) أو """ [[16 6] [12 6]] """ أيضاً كلاهما يدعمان العامل .T لحساب منقول المصفوفة "transpose" لكن كائنات mat لديها ميزات إضافية مثل حساب معكوس مصفوفة وال Conjugate transpose, x = np.array([[2,2], [0 ,3]]) a = np.mat('4 3; 2 1') print(x.T) print(a.T) print(a.H) #mat خاصة ب # Conjugate transpose print(a.I) #mat خاصة ب # inverse """ [[2 0] [2 3]] [[4 2] [3 1]] [[4 2] [3 1]] [[-0.5 1.5] [ 1. -2. ]] """ ومن ناحية استخدام العامل ** : # nd a = np.array([[4, 3], [2, 1]]) c = np.array([[4, 3], [2, 1]]) print(a@b) """[[13 20] [ 5 8]]""" print(a**2) """[[16 9] [ 4 1]]""" print(c**2) """ [[16 9] [ 4 1]] """ #matrix a = np.mat('4 3; 2 1') a**a """ [[16 9] [ 4 1]] """ هناك توابع أخرى مثل np.ravel لكنها غير مهمة. الميزة الرئيسية للمصفوفات matrix هي أنها أكثر عمومية من المصفوفات ثنائية الأبعاد. لكن عليك استخدام ndarray في حالة كانت البيانات ثلاثية الأبعاد أو أكثر، وليس كائن matrix.وطبعاً قد يكون المزج بينهما خلال بناء الكود فكرة سيئة أو متعبة لأنه يجب عليك ملاحقة المتغيرات والتدقيق منهم لكي لايعيد لك ناتج الضرب نتيجة غير متوقعة. وبشكل عام يمكنك الاعتماد كلياً على ndarray لكنك ستفقد بعض التوابع أو ال notation الموجودة في mat وغير الموجودة في nd. وأخيراً يمكنك التحويل بينهما من خلال np.asarray و np.asmatrix: # ndarrays a = np.array([[4, 3], [2, 1]]) np.asmatrix (a) """ matrix([[4, 3], [2, 1]]) """
    1 نقطة
  30. انظر ببساطة: array = np.random.random(11) print(array) """ [0.68454984 0.29564049 0.43585867 0.08240091 0.64254513 0.6644243 0.19431044 0.8343987 0.80227567 0.3568269 0.73074224] """ # أما array = np.random.random(11) array """ array([0.68454984, 0.29564049, 0.43585867, 0.08240091, 0.64254513, 0.6644243 , 0.19431044, 0.8343987 , 0.80227567, 0.3568269 , 0.73074224]) """ أي عندما نستخدم التعليمة print سيظهر الخرج كما تريده، أما يالنسبة للتحكم بدقة الإخراج لل floatting point فيمكنك استخدام set_printoptions واستخدام الوسيطة precision وتحديد العدد الذي تريد إظهاره: import numpy as np array = np.random.random(11) print(array) """ [0.44945536 0.56544673 0.82679165 0.41418793 0.465158 0.34722955 0.75272122 0.01321709 0.24561376 0.86812281 0.761384 ] """ np.set_printoptions(precision=3) print(array) """ [0.449 0.565 0.827 0.414 0.465 0.347 0.753 0.013 0.246 0.868 0.761] """
    1 نقطة
  31. يمكنك استخدام التابع التالي، حيث نعتمد على فكرة طرح القيمة المطلوبة من كل عنصر في المصفوفة، وبالتالي تتشكل لدينا مصفوفة الفرق بالقيمة المطلقة، ثم نستخدم التابع argmin ليعطينا موقع أصغر عنصر، ثم نستخدم flat لتعطينا القيمة الموافقة للموقع: import numpy as np array = np.random.random(10) print(array) """ [0.59588654 0.43663869 0.49730145 0.65410536 0.98261646 0.06100155 0.28296143 0.94809249 0.43775789 0.2167913 ] """ def find1(a, a0): index = np.abs(a - a0) print(idx) """ [0.10411346 0.26336131 0.20269855 0.04589464 0.28261646 0.63899845 0.41703857 0.24809249 0.26224211 0.4832087 ] """ index=idx.argmin() print(index) # 3 print(a.flat[index]) # 0.6541053630832852 return a.flat[index] find1(array,0.7) # 0.6541053630832852 الآن سأكتب التابع بشكل مختصر: import numpy as np array = np.random.random(10) def find1(a, a0): index = np.abs(a - a0).argmin() return a.flat[index] find1(array,0.7) أو يمكنك استخدام الطريقة التالية وهي مشابهة إلى حد كبير بالطريقة الأولى (بالشكل والسرعة): import numpy as np #array = np.random.random(10) print(array) """ [0.59588654 0.43663869 0.49730145 0.65410536 0.98261646 0.06100155 0.28296143 0.94809249 0.43775789 0.2167913 ] """ def find2(a, values): index = np.abs(np.subtract.outer(array, values)).argmin(0) return a.flat[index] find2(array,0.7) # 0.6541053630832852 أو بالطريقة التالية حيث نعتمد على ترتيب المصفوفة أولاً وهي عموماً لاتحتاج لاستخدام نمباي معها، وهي تأخذ المصفوفة المراد البحث فيها والقيمة التي نبحث عن أقرب قيمة لها وترد لنا الموقع الموجودة فيه، ويتم إرجاع -1 أو طول المصفوفة للإشارة إلى أن القيمة خارج النطاق أدناه وأعلى بالترتيب: import numpy as np array = np.random.random(10) print(array) def bi(a,val): a=np.sort(a) """ [0.06100155 0.2167913 0.28296143 0.43663869 0.43775789 0.49730145 0.59588654 0.65410536 0.94809249 0.98261646] """ n = len(a) if (val < a[0]): return -1 elif (val > a[n-1]): return n jl = 0 # تهيئة أقل حد ju = n-1 # الأعلى # طالما لم يتحقق الشرط التالي # نكرر حتى يتحقق الشرط while (ju-jl > 1): jm=(ju+jl) >> 1 # احسب القيمة في المنتصف مع إزاحة if (val >= array[jm]): jl=jm # واستبدل إما الحد الأدنى else: ju=jm # أو الأعلى if (val == a[0]): return 0 elif (val == a[n-1]): return n-1 else: return jl bisection(array,0.7) # 0.6541053630832852 الآن سأجري مقارنة بينهم: import numpy as np def bi(array,value): array=np.sort(array) n = len(array) if (value < array[0]): return -1 elif (value > array[n-1]): return n jl = 0 ju = n-1 while (ju-jl > 1): jm=(ju+jl) >> 1 if (value >= array[jm]): jl=jm else: ju=jm if (value == array[0]): return 0 elif (value == array[n-1]): return n-1 else: return jl def find1(a, a0): index = np.abs(a - a0).argmin() return index def find2(a, values): index = np.abs(np.subtract.outer(array, values)).argmin(0) return index # المقارنة array = np.random.random(1000) %timeit bi(array,0.7) print(bisection(array,0.7)) %timeit find1(array,0.7) print(find1(array,0.7)) %timeit find2(array,0.7) print(find2(array,0.7)) """ 535 ns ± 19.5 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each) -1 5.92 µs ± 1.02 µs per loop (mean ± std. dev. of 7 runs, 100000 loops each) 537 6.37 µs ± 336 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each) 537 """
    1 نقطة
  32. بالنسبة لمتصفح كروم، سيكون عليك تعليم متصفح Chrome الخاص بك كيفية معاينة ملفات PDF، لذا قم بتحميل الإضافة install a PDF preview إلى متصفحك، ثم: Automatically previews pdfs, powerpoint presentations, and other documents in Google Docs Viewer. أو يمكنك عادةً فتح ملفات PDF تلقائيًا في Chrome بالنقر فوق الملف الذي تريد رؤيته. إذا كان يتم تنزيل ملفات PDF الخاصة بك بدلاً من فتحها تلقائيًا في Chrome ، فقد يكون السبب أنه تم إيقاف تشغيل عارض PDF في Chrome. لذا، على جهاز الكمبيوتر الخاص بك ، افتح Chrome. في الجزء العلوي الأيسر ، انقر على "مزيد من الإعدادات". في الجزء السفلي ، انقر فوق إظهار الإعدادات المتقدمة. ضمن "الخصوصية" ، انقر فوق إعدادات المحتوى. ضمن "مستندات PDF" ، حدد المربع بجوار "فتح ملفات PDF في تطبيق عارض PDF الافتراضي". (قم بإلغاء تحديد هذا المربع إذا كنت تريد فتح ملفات PDF تلقائيًا عند النقر فوقها). وبالنسبة لفيرفوكس قم بتثبيت الإضافة pdf.js، أو يمكنك استخدام الطريقة التالية : https://docs.google.com/viewerng/viewer?url=http://yourfile.pdf #yourfile.pdf استيدلها بالرابط الذي تريده
    1 نقطة
  33. مرحباً أساتذتي؛ قرأت غيرَ مرة في مقالات عديدة عربية وأجنبية بأن لغة JavaScript لغة عالية المستوى وتستخدم عادة لإنشاء صفحات ويب تفاعلية والألعاب، كما أنهم يطلقون عنهم لغة برمجية وليست لغة تصميم ويب، لذلك طرأ في ذهني أسئلة وهي كالآتي : هل لغة JavaScript لغة برمجة تختص في back-end ويمكن ربطها بقواعد بيانات مثل : MySQL / SQL ... . هل هي منافسة لـلغة PHP ؟ هل هي قادرة على فعل كل ما تفعله اللغات البرمجية back-end مثل PHP / RUBY مثلاً ؟ وبارك الله فيكم جميعاً أساتذتي الكِرام . | تحياتي .
    1 نقطة
  34. الفكرة أن لغة الجافا سكربت تستخدم في مجال الفرونت إند والباك إند أي أنك بلغة واحدة تعمل في كلا الإتجاهين , حيث في الباك إند يوجد إطار عمل إسمه Node.js لا بد أن تعرف أنها من إطارات عمل الجافا سكريبت. وتمتاز إطار ال Node.js بسرعتها حيث يمكن أن تؤدي أكثر من مهمة في نفس الوقت مما يكسب الخادم سرعة استهلاك أقل. وطبقاً لاحصائات موقع ستاك أوفرفلو السنوية لعام 2019 , فان لغة جافاسكريبت تحتل المرتبة الأولى في اهتمامات المبرمجين بنسبة 67% وهذا الشىء لا يقلل من شأن اللغات الأخرى ف php تعتبر أيضا لغة قوية ولها إطار العمل laravel , ولكن نستطيع القول أن الجافا سكربت مجالاتها أوسع من لغة الphp ويميزها أيضا أنها Non-Blocking أي أن الأوامر يتم تنفيذها بالتوازي بخلاف لغة php التي هي لغة block until completion اي ان الاوامر لايتم تنفيذها الا بتنفيذ ما سبق من اوامر وهذا هو الفرق الاكبر مابين PHP & Node.js
    1 نقطة
×
×
  • أضف...