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

Khaled Osama3

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

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

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

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

    1

كل منشورات العضو Khaled Osama3

  1. يجب استخدام خاصية display لتغيير طريقة عرض العنصر a وتطبيق التوسيط باستخدام خصائص Flexbox على الحاوية التي تحتوي عليه. قم بتعديل الكود الخاص بك كالتالي: 1. أضف خصائص Flexbox إلى الحاوية (div.content) لجعل جميع العناصر بداخلها تتمركز. 2. استخدم خصائص Flexbox داخل الحاوية لتوسيط الرابط. إليك الكود المعدل: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Delightful Bakery</title> <style> h1 { color: purple; text-decoration: underline; text-align: center; text-transform: uppercase; direction: ltr; } .content { background-color: cyan; height: 1330px; width: 1330px; display: flex; flex-direction: column; justify-content: center; align-items: center; } p { color: black; text-align: center; text-transform: uppercase; direction: ltr; font-weight: bold; } a:link { color: orangered; text-decoration: underline; } a:visited { color: purple; text-decoration: underline; } a:hover { color: palegoldenrod; text-decoration: underline; } a:active { color: coral; } </style> </head> <body> <div class="content"> <h1>The Start</h1> <p>The Dark Future</p> <a href="https://www.youtube.com/">Go To Youtube</a> </div> </body> </html> في هذا الكود، استخدمنا خصائص Flexbox على الحاوية .content بحيث يتم توسيط جميع العناصر بداخلها عموديا وأفقيا. هذا سيجعل الرابط يتمركز في وسط الصفحة بشكل صحيح.
  2. الكمبيوتر هو اللي بيتعلم، لكن لما بنقول "الآلة بتتعلم"، بنقصد الكمبيوتر اللي بنستخدمه لتطبيقات التعلم الآلي (Machine Learning). الكمبيوتر نفسه ما عندوش عقل زي الإنسان، لكنه بيقدر يتعلم من البيانات اللي بندخلهاله باستخدام خوارزميات (Algorithms) معينة. بنجمع البيانات وننظفها ونستخدمها لتدريب النموذج (Model). النموذج ده بيكون عبارة عن برنامج بيقدر يتعرف على الأنماط في البيانات. بعد ما النموذج يتدرب على البيانات، بيقدر يتنبأ أو ياخد قرارات بناء على البيانات الجديدة اللي بنمده بيها. طيب، هل أي آلة هي عبارة عن كمبيوتر؟ مش كل آلة هي كمبيوتر، لكن الكمبيوتر جزء أساسي من الآلات اللي بتستخدم في تطبيقات التعلم الآلي. مثلاً: السيارات الذاتية القيادة (Self-driving cars) تعتبر آلات معقدة، جواها كمبيوترات بتستخدم خوارزميات تعلم آلي علشان تتعرف على الطريق والعوائق وتاخد قرارات في القيادة. الفرق بين الآلة والكمبيوتر الكمبيوتر هو الجهاز اللي بنستخدمه لتنفيذ البرمجيات (Software) وعمليات الحساب والتخزين. اما الآلة ممكن تكون جهاز ميكانيكي أو إلكتروني بيأدي وظيفة معينة، والكمبيوتر جواه بيكون جزء من النظام الكبير.
  3. ستجد أسفل فيديو الدرس في نهاية الصفحة صندوق تعليقات كما هنا، أرجو طرح الأسئلة أسفل الدرس وليس هنا في قسم الأسئلة البرمجة حيث نطرح الأسئلة العامة الغير متعلقة بمحتوى الدورة أو الدرس، وذلك لمساعدتك بشكل أفضل
  4. الخطأ هنا يتعلق بأنك تحاول استخدام دالة union مع كائن من نوع tuple. ولكن، tuple لا يحتوي على دالة union. دالة union متوفرة فقط في الكائنات من نوع set. إليك الطريقة الصحيحة لاستخدام union مع مجموعتين: f = {'t', 'y', 'iii', 'r'} d = {'s', 'f', 'k'} result = f.union(d) print(result) لاحظ أننا قمنا بتحويل المتغيرين f و d إلى مجموعات باستخدام {} بدلا من (). إذا كنت تحتاج إلى استخدام tuples، لا يمكنك استخدام union مباشرة. يمكنك بدلا من ذلك تحويلها إلى مجموعات: f = ('t', 'y', 'iii', 'r') d = ('s', 'f', 'k') result = set(f).union(d) print(result) بذلك، ستتمكن من دمج القيمتين بدون مشاكل.
  5. أول شيء، لازم نضبط إعدادات البريد في Laravel. ستحتاج تعدل في ملف .env عشان تضيف بيانات خادم البريد (SMTP). الخطوة 1: تعديل ملف البيئة .env ملف .env هو المكان الذي تحفظ فيه إعدادات البيئة الخاصة بمشروعك، مثل إعدادات قاعدة البيانات والبريد الإلكتروني. تحتاج لإعداد بيانات SMTP الخاصة بخادم البريد الذي ستستخدمه لإرسال الرسائل. افتح ملف .env الموجود في جذر مشروعك وأضف الإعدادات التالية (استبدل بالقيم المناسبة): MAIL_MAILER=smtp MAIL_HOST=smtp.example.com # عنوان خادم البريد (مثل smtp.gmail.com إذا كنت تستخدم Gmail) MAIL_PORT=587 # المنفذ المستخدم (587 لـ TLS، 465 لـ SSL) MAIL_USERNAME=your_email@example.com # بريدك الإلكتروني MAIL_PASSWORD=your_email_password # كلمة المرور لبريدك الإلكتروني MAIL_ENCRYPTION=tls # نوع التشفير (tls أو ssl) MAIL_FROM_ADDRESS=your_email@example.com # عنوان البريد الذي سترسل منه الرسائل MAIL_FROM_NAME="${APP_NAME}" # اسم المرسل الذي سيظهر في البريد الإلكتروني الخطوة 2: إنشاء بريد إلكتروني جديد Mailable هو كلاس مخصص في Laravel لتسهيل عملية إرسال البريد الإلكتروني. لإنشاء Mailable جديد، افتح التيرمنال في جذر مشروعك واستخدم الأمر التالي: php artisan make:mail ExampleMail هذا الأمر سينشئ ملفًا جديدًا في app/Mail/ExampleMail.php. هذا الملف سيحتوي على القالب الأساسي للرسالة التي سترسلها. الخطوة 3: تخصيص البريد الان، نفتح الملف ExampleMail.php ونخصصه عشان نضيف التفاصيل اللي نريدها في البريد: <?php namespace App\Mail; use Illuminate\Bus\Queueable; use Illuminate\Mail\Mailable; use Illuminate\Queue\SerializesModels; class ExampleMail extends Mailable { use Queueable, SerializesModels; public $details; // متغير لتخزين تفاصيل الرسالة /** * Create a new message instance. * * @return void */ public function __construct($details) { $this->details = $details; // تخزين التفاصيل الممررة للرسالة } /** * Build the message. * * @return $this */ public function build() { return $this->subject('Test Email') // موضوع البريد الإلكتروني ->view('emails.example'); // عرض القالب } } الخطوة 4: إنشاء قالب البريد الإلكتروني القالب هو الملف الذي يحدد شكل ومحتوى البريد الإلكتروني. لنقم بإنشاء قالب بسيط. افتح مجلد resources/views وأنشئ مجلد جديد باسم emails، ثم أنشئ ملف جديد باسم example.blade.php وضع فيه المحتوى التالي: <!DOCTYPE html> <html> <head> <title>Test Email</title> </head> <body> <h1>{{ $details['title'] }}</h1> <p>{{ $details['body'] }}</p> </body> </html> في هذا القالب، نستخدم متغيرات title و body التي سنمررها عند إرسال البريد الإلكتروني. الخطوة 5: كتابة كود الإرسال الآن، نحتاج لكود يقوم بإرسال البريد الإلكتروني. يمكننا وضع هذا الكود في أي مكان نريد، سواء في Controller أو مباشرة في Route. لنبسط الأمور، سنضعه في Route. افتح ملف routes/web.php وأضف الكود التالي: use Illuminate\Support\Facades\Route; use App\Mail\ExampleMail; use Illuminate\Support\Facades\Mail; Route::get('/send-email', function () { // تفاصيل الرسالة $details = [ 'title' => 'Mail from Laravel Application', 'body' => 'This is a test email sent from Laravel.' ]; // إرسال البريد الإلكتروني Mail::to('recipient@example.com')->send(new ExampleMail($details)); // رسالة تأكيد الإرسال return 'Email sent successfully!'; }); في هذا الكود: قمنا بإنشاء Route جديدة باسم /send-email. داخل هذا Route، قمنا بتعريف تفاصيل الرسالة مثل title و body. استخدمنا Mail::to لتحديد مستقبل الرسالة وأرسلنا الرسالة باستخدام ExampleMail. الان لتشغيل التطبيق واختبار البريد الإلكتروني افتح متصفحك واذهب إلى http://your-domain/send-email (استبدل your-domain بالعنوان الفعلي لتطبيقك). إذا كانت الإعدادات صحيحة، سترى رسالة "Email sent successfully!" والبريد الإلكتروني سيتم إرساله إلى العنوان المحدد.
  6. عادة ما يستخدم التعلم غير الخاضع للإشراف (Unsupervised Learning) مع بيانات غير مسماة (Unlabeled Data). يعني ذلك أن البيانات لا تحتوي على تسميات أو نتائج معروفة مسبقا، ويقوم النموذج بمحاولة اكتشاف الأنماط أو العلاقات داخل البيانات دون معرفة مسبقة بالتسميات. ولكن، من الممكن استخدام البيانات المسماة في التعلم غير الخاضع للإشراف في بعض الحالات المحددة. على سبيل المثال: 1. استخدام جزء من البيانات: يمكن استخدام جزء من البيانات المسماة دون النظر إلى التسميات نفسها. يمكن للنموذج محاولة اكتشاف الأنماط فقط بناء على الميزات (Features) الموجودة في البيانات. 2. التحقق من صحة النتائج: بعد أن يقوم النموذج باكتشاف الأنماط أو المجموعات (Clusters) في البيانات، يمكن استخدام التسميات للتحقق من صحة النتائج ومعرفة ما إذا كانت الأنماط المكتشفة تتوافق مع الفئات الفعلية. بشكل عام، الهدف الرئيسي من التعلم غير الخاضع للإشراف هو التعامل مع البيانات غير المسماة، ولكن يمكن استخدام البيانات المُسماة بشكل غير مباشر كما تم توضيحه. ولكن للتوضيح اكثر دعنا نأخذ مثالا عمليا لتوضيح كيف يمكن استخدام البيانات المسماة في سياق التعلم غير الخاضع للإشراف. تجميع الصور باستخدام التعلم غير الخاضع للإشراف لنفترض أن لدينا مجموعة كبيرة من الصور للفاكهة (مثل التفاح، البرتقال، والموز). لدينا بعض الصور مسماة (أي نعرف ما هي الفاكهة في كل صورة)، ولكن نريد استخدام التعلم غير الخاضع للإشراف لتجميع الصور حسب النوع. الخطوات: 1. تحضير البيانات: - لدينا مجموعة من الصور المسماة (مثلاً 100 صورة لكل نوع من الفاكهة). 2. استخدام التعلم غير الخاضع للإشراف (مثل K-means): - نقوم بتحويل الصور إلى تمثيلات رقمية باستخدام تقنيات مثل تحليل المكونات الرئيسية (PCA) أو الشبكات العصبية التلافيفية (CNN). - نستخدم خوارزمية K-means لتجميع الصور إلى 3 مجموعات (clusters)، حيث نعرف مسبقاً أننا نتوقع ثلاث مجموعات مختلفة بناءً على نوع الفاكهة. 3. التحقق من النتائج باستخدام البيانات المُسماة: - بعد تشغيل خوارزمية K-means، نحصل على 3 مجموعات من الصور. - الآن، نستخدم التسميات الموجودة لدينا للتحقق من مدى دقة التجميع. نقوم بفحص كل مجموعة لمعرفة ما إذا كانت الصور في كل مجموعة تتطابق مع نوع فاكهة محدد. إذا كانت المجموعة الأولى تحتوي بشكل أساسي على صور التفاح، والمجموعة الثانية تحتوي على صور البرتقال، والمجموعة الثالثة تحتوي على صور الموز، فهذا يعني أن التجميع كان ناجحاً. اما إذا كانت هناك صور غير مصنفة بشكل صحيح، يمكننا معرفة الأخطاء وتحليلها لتحسين النموذج. في النهايه فباستخدام هذه الطريقة، نحن نستخدم التعلم غير الخاضع للإشراف لاكتشاف الأنماط والتجميع في البيانات، ثم نستخدم البيانات المُسماة للتحقق من دقة النتائج وتحسين النموذج إذا لزم الأمر. هذه العملية مفيدة خاصة عندما يكون لدينا بيانات كبيرة جداً وليس لدينا تسميات لجميع البيانات، حيث يمكننا استخدام جزء صغير من البيانات المسماة كمرجع لتحسين وتقييم النموذج.
  7. يمكنك التكلم مع إدارة حسوب من خلال مركز الدعم من هنا.
  8. نعم، يمكنك ولكن استخدامه يختلف عن استخدام هذه النماذج, النماذج مثل LinearRegression وRandomForestClassifier هي نماذج تعلم إشرافي تستخدم لتنبؤ القيم أو تصنيف البيانات بناء على مجموعة محددة من الميزات. هذه النماذج تتطلب مجموعة بيانات محددة للتدريب والتقييم. أما نموذج ChatGPT فهو نموذج يعتمد على التعلم العميق ومعالجة اللغة الطبيعية (NLP) ويُستخدم لإنشاء النصوص والإجابة على الأسئلة وفهم اللغة الطبيعية. لذا، يمكن استخدامه في تطبيقات تتعلق بفهم وتوليد اللغة مثل بناء أنظمة محادثة ذكية، ملخصات النصوص، والترجمة الآلية. لتوضيح الفرق بشكل أبسط: إذا كنت تريد بناء نموذج يتنبأ بقيمة معينة مثل أسعار المنازل بناء على ميزات معينة (مثل المساحة وعدد الغرف)، فإنك ستستخدم نماذج مثل LinearRegression. إذا كنت تريد بناء نموذج يتعامل مع النصوص ويفهم الأسئلة ويقدم إجابات مثل ما يفعله ChatGPT، فإنك ستستخدم نموذج مثل ChatGPT. لا يمكنك تغيير أو تعديل النموذج نفسه بسبب امتلاك شركة أنثرو بايل لحقوقه. فإذا كان الهدف هو إجراء محادثة بسيطة، يمكن استخدام ChatGPT. أما لتطبيقات أوسع نطاقا فلا بد من تطوير نموذج خاص.
  9. وعليكم السلام لنبدأ أولا بالتكلم عن فهم المعادلات المقصود هنا هو أنك تفهم كيف تعمل المعادلات المستخدمة في النماذج، مثل معادلات الانحدار الخطي أو الشبكات العصبية. هذا الفهم يساعدك على استخدام هذه النماذج بفعالية وتحديد متى يكون النموذج مناسبا للمشكلة التي تعمل عليها. فهمك للمعادلات يساعدك أيضًا في تحسين النماذج واكتشاف الأخطاء. ثم تطوير المعادلات هذا يتطلب مستوى أعلى من الفهم والابتكار. يعني أنك تقوم بابتكار وتطوير معادلات جديدة أو تحسين المعادلات الحالية بشكل مبتكر. هذا يتطلب معرفة عميقة بالرياضيات والخوارزميات. فالخطوة الأولى هي فهم كيف تعمل الأشياء الموجودة، ثم بعد ذلك يمكنك محاولة تطوير أشياء جديدة.
  10. في الكود الأول، يقوم الشرط if (loading) بفحص حالة التحميل، ولكن لا يقوم بإرجاع أي مكون React ليتم عرضه في واجهة المستخدم. هذا يعني أن Oval لا يتم عرضه فعليًا. في الكود الثاني، يتم استخدام التعبير الشرطي loading ? ... : ... داخل return لإرجاع الـOval مباشرة عندما تكون حالة التحميل true. وبالتالي، يتم عرض الـLoader Component بشكل صحيح عند تحميل البيانات. يمعني اخر الكود الثاني يعمل بشكل صحيح لأن الشرط الذي يتحقق من حالة التحميل (loading) يوجد داخل التعبير الشرطي في دالة return، مما يسمح بعرض الـLoader Component مباشرة. بينما في الكود الأول، الشرط if (loading) لا يعيد أي مكون للواجهة، وبالتالي لا يتم عرض الـLoader Component.
  11. في التصنيف (Classification) أيوة، ممكن نستخدم أرقام بدل الكلمات (زي 1 بدل "نعم" و0 بدل "لا"). دي بنسميها أحيانا encoding. لكن الهدف النهائي هو نفس الهدف اننا نحدد الفئة أو المجموعة اللي العنصر ينتمي ليها. يعني التصنيف بيكون دايما على هيئة مجموعات أو فئات مش أرقام مستمرة. انما في التنبؤ أو الانحدار (Regression) التنبؤ بيتعامل مع الأرقام بشكل مستمر، مش مجرد أرقام بتمثل فئات. يعني الرقم اللي بتتنبأ بيه ممكن يكون أي قيمة في نطاق معين، مش بس 0 و1. مثلاً، لما بتتنبأ بسعر بيت، ممكن يكون السعر 150000، 175000، أو أي رقم تاني. لتوضيح الفرق أكتر: - لو عندنا مشكلة تصنيف زي إننا نحدد إذا كان الشخص مصاب بالسكر أو لا، نقدر نستخدم 1 و0، لكن ده بيظل تصنيف لأن الهدف هو نحدد المجموعة اللي الشخص ينتمي ليها (مصاب أو سليم). - لو عندنا مشكلة تنبؤ زي تقدير مستوى السكر في الدم على هيئة رقم (مثلاً 120، 150، إلخ)، دي تبقى مشكلة تنبؤ أو انحدار لأننا بنتعامل مع أرقام مستمرة. بالتالي، التصنيف بيشتغل مع فئات محددة حتى لو استخدمنا أرقام لتمثيلها، والتنبؤ بيشتغل مع أرقام مستمرة.
  12. الهدف النهائي من بناء نموذج في البرمجة أو في الذكاء الاصطناعي هو استخدام البيانات اللي عندنا عشان نساعد في اتخاذ قرارات أفضل وأسرع في الحياة اليومية أو في الأعمال. النموذج ده بيكون زي عقل إلكتروني بيفهم البيانات ويتعلم منها عشان يديك توقعات أو توصيات مفيدة. في الطب: النموذج يقدر يساعد الدكاترة في تشخيص الأمراض بسرعة وبدقة. في الأعمال: يقدر يتنبأ بمبيعات المنتجات عشان الشركات تعرف تخطط للمستقبل. في السيارات الذاتية القيادة: النموذج بيساعد العربية تفهم الطريق وتتجنب الحوادث. في التطبيقات اليومية: ممكن يساعدك تختار الأفلام أو الأغاني اللي ممكن تعجبك. يمكننا التكلم عن الفوائد بشكل مبسط في المثال الذي ذكرته(نموذج يتنبأ إذا كان الشخص مصابًا بمرض السكر أم لا): 1. الاكتشاف المبكر: النموذج يمكنه المساعدة في اكتشاف حالات السكر مبكرا، مما يمنح المريض فرصة لبدء العلاج بسرعة وتجنب المضاعفات. 2. توفير الوقت والجهد: بدلاً من أن يحتاج الطبيب إلى فحص جميع الأعراض وإجراء جميع الفحوصات بنفسه، يمكن للنموذج أن يساعده في الحصول على فكرة سريعة عما إذا كان المريض يحتاج إلى فحص أدق أم لا. 3. تحسين الرعاية الصحية: عندما يكون لدينا نماذج دقيقة، نستطيع توفير رعاية صحية أفضل للناس وتقليل عدد الحالات التي لا يتم اكتشافها أو تشخيصها بشكل خاطئ. 4. توفير الأموال: النموذج يمكنه توفير الأموال لأن الفحوصات المبكرة والعلاج المبكر يمكن أن يمنع مشاكل أكبر وأغلى في المستقبل. 5. البحث العلمي: هذه النماذج تساعد في الأبحاث العلمية لفهم الأمراض وأسبابها بشكل أفضل، مما يمكن أن يفتح لنا الباب لعلاجات جديدة. يعني الهدف الأساسي هو تحسين حياتنا وجعلها أسهل وأكثر فعالية من خلال استغلال قوة البيانات والتكنولوجيا. ببساطة، النموذج ليس مجرد أداة للتنبؤ، بل هو أيضا وسيلة لتحسين حياتنا وصحتنا بشكل عام.
  13. عبارة "birthday [name]" تشير إلى يوم ميلاد شخص معين، حيث يتم استبدال [name] باسم الشخص الذي تتحدث عنه. لنبدأ الاول بشرح القاموس Dictionary هو عبارة عن بنية بيانات في العديد من لغات البرمجة، ومنها Python. يسمح القاموس بتخزين البيانات على شكل أزواج (مفتاح: قيمة). المفتاح هو معرف فريد، والقيمة هي البيانات المرتبطة بهذا المفتاح. اليك مثال ليوضح الموضوع اكثر :إنشاء قاموس يحتوي على أعياد ميلاد أشخاص: birthdays = { "Alice": "1990-05-24", "Bob": "1985-12-14", "Charlie": "2000-01-01" } هنا قمنا بإنشاء قاموس يسمى birthdays و يحتوي على مفاتيح وهي أسماء الأشخاص ("Alice"، "Bob"، "Charlie"). القيم المرتبطة بهذه المفاتيح هي تواريخ ميلادهم ("1990-05-24"، "1985-12-14"، "2000-01-01"). للوصول إلى يوم ميلاد شخص معين: name = "Alice" print(f"{name}'s birthday is on {birthdays[name]}") النتيجة ستكون: Alice's birthday is on 1990-05-24 بهذه الطريقة، يمكنك استخدام القاموس لتخزين واسترجاع معلومات مختلفة، مثل أعياد الميلاد، بسهولة وفعالية. القواميس dict في بايثون
  14. بالنسبة لتخصصك في مجال رؤية الحاسوب (Computer Vision)، الطريق اللي اقترحته صحيح ومناسب جدًا. التعلم الخاضع للإشراف (Supervised Learning) ده الأساس في كتير من تطبيقات رؤية الحاسوب. هتحتاج تتعلم إزاي تبني نماذج تتعرف على الأجسام في الصور وتقدر تصنفها. هتحتاج تدرس المواضيع دي: التصنيف (Classification): مثلا تصنيف الصور حسب نوعها (قطة، كلب، سيارة، إلخ). الكشف عن الأجسام (Object Detection): تحديد مكان وحجم الأجسام في الصور. تقسيم الصور (Image Segmentation): تقسيم الصورة إلى أجزاء بناء على محتواها. التعلم غير الخاضع للإشراف (Unsupervised Learning) هنا هتتعلم إزاي تكتشف الأنماط في الصور من غير ما يكون عندك تصنيفات مسبقة. ده مهم لتحليل البيانات وتقديم رؤى جديدة. المواضيع اللي ممكن تدرسها تشمل: التجميع (Clustering): تجميع الصور المتشابهة مع بعض. تقليل الأبعاد (Dimensionality Reduction): تقليل حجم البيانات مع الحفاظ على المعلومات الأساسية. التعلم العميق (Deep Learning) ده الجزء الأكثر تطورًا في رؤية الحاسوب. باستخدام الشبكات العصبية العميقة (Deep Neural Networks)، تقدر تحقق أداء ممتاز في المهام المعقدة. المواضيع اللي تركز عليها هنا تشمل: الشبكات العصبية الالتفافية (Convolutional Neural Networks - CNNs): دي الأساس في رؤية الحاسوب، بتستخدم لتصنيف الصور والكشف عن الأجسام. الشبكات العصبية التوليدية (Generative Adversarial Networks - GANs): بتستخدم لتوليد صور جديدة وتعديل الصور الحالية. التعلم بالنقل (Transfer Learning): استخدام نماذج مدربة مسبقاً وتحسينها لمهام جديدة، ده بيساعدك توفر وقت ومجهود في تدريب النماذج. يجب ان تبدأ بالتعلم الخاضع للإشراف: تعلم الأساسيات: Python, NumPy, Pandas. ادرس مكتبات التعلم الآلي زي Scikit-Learn. تعلم الأساسيات في تصنيف الصور والكشف عن الأجسام. ثم انتقل للتعلم غير الخاضع للإشراف: ادرس التقنيات الأساسية زي K-Means و PCA. جرب التطبيقات العملية على البيانات الخاصة برؤية الحاسوب. وبعد ذلك تعمق في التعلم العميق: ادرس مكتبات التعلم العميق زي TensorFlow و PyTorch. ابدأ بمشاريع بسيطة في CNNs، ثم انتقل لمشاريع أكثر تعقيداً زي GANs و Transfer Learning. باتباع الخطوات دي، هتكون عندك قاعدة قوية في رؤية الحاسوب وتقدر تشتغل على مشاريع متقدمة في المجال.
  15. تعلم الآلة (Machine Learning) هو مجال كبير وفيه أنواع كتير، زي ما أنت قلت: 1. التعلم الخاضع للإشراف (Supervised Learning): ده النوع اللي فيه البيانات بتكون متصنفة، يعني كل بيان لدينا بيكون معروف نوعه أو الفئة اللي بينتمي ليها. المثال الشائع هو تصنيف الصور، يعني لدينا مجموعة صور وعايزين نعرف كل صورة فيها قطة ولا كلب. 2. التعلم غير الخاضع للإشراف (Unsupervised Learning): هنا البيانات ما بتبقاش متصنفة، يعني مش عارفين كل بيان ينتمي لفئة إيه. بنستخدم النوع ده لايجاد أنماط أو تجمعات في البيانات. مثال على ده هو تجميع العملاء حسب تصرفاتهم في الشراء. 3. التعلم شبه الخاضع للإشراف (Semi-Supervised Learning): ده نوع بين الاثنين، يعني لدينا بعض البيانات متصنفة وبعض البيانات غير متصنفة. بنستخدم النوع ده لما يكون لدينا بيانات كتير بس ليس لدينا الوقت أو الموارد نصنفها كلها. 4. التعلم المعزز (Reinforcement Learning): ده نوع مختلف قليلا، فيه الآلة بتتعلم عن طريق التجربة والخطأ. بتاخد قرارات وبناء على نتيجة القرار (إيجابي أو سلبي) بتتعلم تحسن من قراراتها المستقبلية. مثال على ده هو الألعاب، زي لعبة الشطرنج، الآلة بتتعلم تلعب وتفوز عن طريق التجربة. هل لازم تتعلم كل الأنواع؟ الجواب البسيط هو: لأ، مش لازم تتعلم كل الأنواع من الأول. أفضل حاجة تبدأ تتعلم الأساسيات في كل نوع، وبعد كده تقدر تتخصص في النوع اللي يناسب اهتمامك أو المجال اللي عايز تشتغل فيه. مثال: - اذا كنت مهتم بتحليل البيانات والتنبؤات، ممكن تركز على التعلم الخاضع للإشراف. - اذا كنت شغلك هيكون أكتر في تجميع البيانات وتصنيفها، يبقى التعلم غير الخاضع للإشراف هيكون مناسب ليك. - اذا كنت عندك مشروع فيه بيانات كتير مش متصنفة وتريد ان تستفيد منها، ممكن تتعلم التعلم شبه الخاضع للإشراف. - اذا كنت مهتم بالألعاب أو الروبوتات أو الأنظمة اللي بتاخد قرارات بشكل مستقل، يبقى التعلم المُعزز هيكون مناسب ليك. في النهاية، اختيارك للتخصص يعتمد على اهتماماتك والمجال الذي تريد العمل فيه. لا توجد مشكلة في أن تبدأ بتعلم الأساسيات في جميع الأنواع، ثم تختار النوع الذي ترى أنك ستتميز فيه.
  16. حل مشكلة القيم التي أصبحت 0 و 1 بعد تطبيق خطوة Pivot Column، يجب التأكد من أن التوقيت في عمود CHECKTIME يبقى نصا قبل محاولة تقسيمه. وسنقوم بهذه الخطوات باستخدام Power Query في Power BI: تأكدى من أن العمود CHECKTIME هو نص إذا لم يكن كذلك، حددى العمود وانقرى على Data Type في الشريط العلوي واخترى"Text". وقومى بتحويل النص إلى تاريخ/وقت: -حددى العمود الذي يحتوي على التاريخ وحوله إلى نوع البيانات "Date". -حددى العمود الذي يحتوي على الوقت وحوله إلى نوع البيانات "Time". وقومى باضافة عمود جديد مخصص لحساب عدد الساعات بين الدخول والخروج: اضغطي على Add Column ثم Custom Column. واستخدمى الصيغة التالية: Duration.TotalHours(Time.From([Exit]) - Time.From([Entry]))
  17. الحمدلله ان المشكله حلت قد تكون المشكلة كانت بسبب تداخل أو تعارض في الأذونات بين المجلدات الفرعية والمجلد الأساسي. يمكنك استخدام الأوامر مثل ls -l للتحقق من الأذونات ومالك الملفات بشكل دوري خاصة بعد التحديثات أو التغييرات الكبيرة.
  18. بما أن المسار صحيح ويعطيك الملفات الموجودة فيه، المشكلة قد تكون في صلاحيات الوصول أو في استخدام أسماء المجلدات داخل الكود. للتحقق أكثر، تحقق من الأذونات للمجلدات الفرعية والمجلد الذي يحتوي على السكريبت chmod -R 777 /home/1.****.com/public_html/images2/ وايضان يجب ان تتأكد من أن أسماء المجلدات في الكود تتطابق بالضبط مع الأسماء الموجودة في النظام، بما في ذلك الأحرف الكبيرة والصغيرة. في بعض الأحيان، قد تكون المشكلة ناتجة عن حرف مختلف في الاسم. بعد هذه التأكيدات اذا استمرت المشكله جرب ان تضف بعض التحقق من الأخطاء في الكود الخاص بك للحصول على مزيد من التفاصيل حول الخطأ لكي نستطيع ايجاد اين المشكله بالظبط $path = 'images2/2024/imk.jpg'; if (!file_exists(dirname($path))) { die('Directory does not exist: ' . dirname($path)); } if (!is_writable(dirname($path))) { die('Directory is not writable: ' . dirname($path)); } if (file_put_contents($path, $data) === false) { die('Failed to write to file: ' . $path); } جرب هذه الخطوات وإذا استمرت المشكلة، قدم لي الرسائل الجديدة التي تحصل عليها
  19. تظهر الرسالة التحذيرية أن هناك مشكلة في فتح المجلد أو الملف المحدد. يمكن أن تكون المشكلة ناتجة عن عدة أسباب مثل ان المسار غير صحيح: تأكد من أن المسار images2/2024/imk.jpg هو المسار الصحيح وأنه موجود بالفعل. يبدو أن المجلد "images2" غير موجود في المسار المحدد في الرسالة التحذيرية. قد يكون المسار الصحيح هو images/2024/imk.jpg. تأكد من أن الأذونات مضبوطة بشكل صحيح لجميع المجلدات التي تشمل المسار الكامل. الصورة تظهر أن مجلد "images" لديه أذونات كاملة، ولكن تأكد أيضا من الأذونات للمجلدات الفرعية. للتأكد من وجود المسار الصحيح: ls -l /home/1.****.com/public_html/images2/2024/ إذا لم يكن المجلد موجودا، يمكنك إنشاء المجلدات الناقصة: mkdir -p /home/1.****.com/public_html/images2/2024/ بعد تنفيذ هذه التأكيدات، حاول تشغيل السكريبت مرة أخرى للتحقق من حل المشكلة. إذا استمرت المشكلة، يرجى تقديم المزيد من التفاصيل حول السكريبت والمزيد من الرسائل التحذيرية إن وجدت.
  20. السلام عليكم أمل ، لفصل توقيـت الدخول والخروج في عمودين منفصلين لحساب ساعـات العمل لكل موظف، يمكنك استخدام برنامج Power BI واستخدام استعلامات DAX أو Power Query سـوف أوضح لكى كيفيـة القيام بذلك باستخدام Power Query، وهو جزء من Power BI Desktop. اولا قومى بتحميل البيانات إلى Power BI: افتحى Power BI Desktopوانقرى على Get Data وحددى نوع البيانات Excel إذا كانت بياناتك في ملف Excel. وقمى بتحميل الجدول الذي يحتوي على بيانات البصمة. ومن ثـم افتحى محرر Power Query: -بعد تحميل البيانات، انقرى على Transform Data لفتح محرر Power Query. -إضافة عمود مخصص لتحديد نوع الحدث دخول أو خروج. -اختر الجدول الخاص بك في Power Query. -اضغطى على Add Column ثم Custom Column أضفى عمود مخصص لتحديد نوع الحدث دخول أو خروج بناء على الوقت. يمكنك استخدام صيغة لتحديد ما إذا كان الوقت في الصباح (AM) هو دخول وما إذا كان في المساء PM هو خروج: if Text.End([CHECKTIME], 2) = "AM" then "Entry" else "Exit" فصل التاريخ والوقت: استخدمى Split Column لفصل التاريخ والوقت في عمود CHECKTIME إلى تاريخ ووقت ،.واخترى العمود CHECKTIME. انقر على Home ثم Split Columnواختر By Delimiter واختر Space كالفاصل. تحويل النص إلى تاريخ/وقت: حددى العمود الذي يحتوي على التاريخ وحوله إلى نوع البيانات Date. حددى العمود الذي يحتوي على الوقت وحوله إلى نوع البيانات Time. ومن ثم نجعل الجدول Pivot: -استخدم Pivot Column لجعل القيم في عمود نوع الحدث دخول أو خروج كعناوين أعمدة. -اخترى العمود الذي يحتوي على نوع الحدث.وانقرى على Transform ثم Pivot Column. -في نافذة Pivot Column، اختر العمود الذي يحتوي على الوقت كقيم. ومن ثم نقوم بحساب عدد الساعات: أضفى عمود مخصص جديد لحساب عدد الساعات بين الدخول والخروج. اضغطى على Add Column ثم Custom Column. استخدم صيغة لحساب الفرق بين وقت الدخول ووقت الخروج: Duration.TotalHours([Exit] - [Entry]) واخيرا انقرى على Close & Apply لتطبيق التغييرات والعودة إلى Power BI وبعد ذلك قومى بإنشاء التقارير التى تريدين.
  21. ستجد أسفل فيديو الدرس في نهاية الصفحة صندوق تعليقات كما هنا، أرجو طرح الأسئلة أسفل الدرس وليس هنا في قسم الأسئلة البرمجة حيث نطرح الأسئلة العامة الغير متعلقة بمحتوى الدورة أو الدرس، وذلك لمساعدتك بشكل أفضل.
  22. وعليكم السلام ورحمة الله وبركاته، كتابة التعليقات (Comments) في الكود لا تعتبر بالضرورة مخالفة لقواعد كتابة الكود النظيف (Clean Code)، بل على العكس، فهي جزء مهم من عملية كتابة الكود النظيف والصحيح. التعليقات بتساعدك إنك تشرح الغرض من أجزاء معينة في الكود، خاصة الأجزاء اللي ممكن تكون معقدة أو غير واضحة. فعندما ترجع للكود بعد فترة، أو لما يشتغل عليه حد تاني، التعليقات بتسهل فهم الكود بسرعة. ولكن يوجد قواعد لكتابه التعليقات مثل ان تكتب تعليقات قصيرة ومباشرة توضح الغرض من الكود بدون كلام كتير. ولا تكتب تعليقات على حاجات واضحة ومفهومة من الكود نفسه، زي تعليق بيقول "زيادة 1 للمؤشر". ومع ذلك، هناك بعض الأمور التي يجب مراعاتها عند كتابة التعليقات حتى لا تؤثر سلبًا على جودة الكود: 1. عدم الإفراط في كتابة التعليقات: يجب أن يكون الكود واضحا ومفهوما بقدر الإمكان، وأن تستخدم التعليقات فقط عندما تكون ضرورية لشرح أجزاء معقدة أو غير واضحة. 2. تحديث التعليقات: يجب تحديث التعليقات بشكل منتظم لتتوافق مع أي تغييرات في الكود، حتى لا تصبح التعليقات قديمة وغير صحيحة. 3. اتباع اتفاقية توثيق موحدة: يجب اتباع اتفاقية توثيق موحدة في جميع أنحاء المشروع، سواء كانت تعليقات أو توثيق رسمي، لضمان الاتساق والوضوح. لذلك، كتابة التعليقات في الكود ليست مشكلة في حد ذاتها، ولكن يجب الانتباه إلى كيفية استخدامها بشكل صحيح ومناسب لضمان جودة الكود وسهولة صيانته وقراءته.
  23. نعم بالتأكيد يمكنك ذلك. ستساعدك الفيديوهات على رؤية التعليمات البرمجية قيد التنفيذ وفهم كيفية عملها في السياق العملي. والكتب توفر شروحات أكثر عمقا وتفصيلا للنظريات والمفاهيم الأساسية. ابدأ بمشاهدة فيديوهات تعليمية للحصول على نظرة عامة وفهم أساسي للمفاهيم. ثم بعد مشاهدة الفيديوهات، استخدم الكتاب لتعمق الفهم ولإيجاد تفاصيل إضافية حول الموضوعات التي تعلمتها. ولكن حاول كتابة الأكواد بنفسك وتجربة ما تعلمته من الفيديوهات والكتاب. الطريقة المثلى هي عند مواجهة صعوبة في الفيديوهات استعن بالكتاب لمزيد من التوضيح.استخدم الكتب كمرجع بعد الانتهاء من موضوع معين. توكل على الله واجتهد.
  24. يمكنك تحميله بصيغة PDF وقراءته على جهازك، ولكن لا توجد خدمة لطلب نسخة ورقية منه مباشرة من خلال الأكاديمية. إذا كنت ترغب في الحصول على كتب معينة، يمكنك زيارة قسم "الكتب" في الموقع واختيار الكتاب الذي تريده. ستحصل على معلومات حول الكتاب مثل نبذة تعريفيّة، اسم الكاتب، التقييم العام، وتفاصيل أخرى مثل عدد مرات التحميل وحجم الملف. كما يمكنك متابعة تفاعلات الأعضاء ومراجعاتهم حول الكتب التي قمت بتحميلها. إذا كنت تفضل النسخ الورقية، يمكنك طباعة الكتاب بنفسك بعد تنزيله من الموقع. تتوفر الكتب الإلكترونية مجانا وتدعم الطباعة لاستخدامك الشخصي. للأسف، لا توجد حاليا خدمة لتوفير الكتب الورقية من قبل أكاديمية حسوب، ولكن الطباعة الذاتية تعتبر حلا مناسبا.
  25. الكود الذي كتبته صحيح، ولكن هناك نقطة مهمة يجب أن تعرفها بخصوص استخدام الأنماط (styles) في مكتبة matplotlib. الأنماط يجب أن تطبق قبل إنشاء الرسم البياني (أي قبل استدعاء دالة plt.plot). هنا انت قمت بإنشاء الرسم البياني أولا ثم حاولت تطبيق النمط، وهذا هو السبب في أن النمط لم يطبق على الرسم البياني. دعنا نعيد كتابة الكود بشكل صحيح بحيث يتم تطبيق النمط قبل إنشاء الرسم البياني: import matplotlib.pyplot as plt # قائمة الأعداد للمحورين a = [1,2,3,4,5,6,7,8] b = [1,2,3,4,5,6,7,8] # تطبيق النمط قبل رسم المخطط plt.style.use('bmh') # رسم المخطط plt.plot(a,b) # عرض المخطط plt.show() في هذا الكود، قمت بتطبيق النمط bmh قبل رسم المخطط، لذا سيتم تطبيق النمط على المخطط بشكل صحيح.
×
×
  • أضف...