-
المساهمات
1278 -
تاريخ الانضمام
-
تاريخ آخر زيارة
المعلومات الشخصية
-
النبذة الشخصية
مهندس برمجيات
- الموقع
آخر الزوار
588 زيارة للملف الشخصي
إنجازات عبد الوهاب بومعراف
-
لدينا tf.data.Dataset.list_files حيث تستخدم هذه الدالة لإنشاء كائن tf.data.Dataset يحتوي على قائمة بأسماء الملفات التي تتطابق مع النمط المحدد في pattern، و هذه الطريقة مفيدة عند العمل مع مجموعات بيانات كبيرة، حيث توفر وسيلة ديناميكية لتحميل الملفات دون الحاجة إلى تحديدها يدويا. أما tf.io.read_file فتعمل هذه الدالة على قراءة محتوى الملف المحدد كبيانات خام دون تفسيرها أو تحويلها إلى صيغة محددة، و تستخدم عادة كخطوة وسيطة عند التعامل مع الصور أو النصوص، حيث يتم تحميل البيانات من الملفات قبل معالجتها أو تحويلها إلى نوع بيانات قابل للاستخدام داخل TensorFlow. بالنسبة ل tf.image.decode_jpeg فتستخدم هذه الدالة لفك تشفير الصور المخزنة بصيغة JPEG وتحويلها إلى كائن Tensor، حيث تأخذ الدالة البيانات الخام التي تم تحميلها باستخدام tf.io.read_file، ثم تقوم بتحويلها إلى مصفوفة تمثل الصورة بالأبعاد، و يمكن تحديد عدد القنوات اللونية للصورة من خلال المعامل channels، حيث يمكن ضبطه إلى 3 للحصول على صورة ملونة أو 1 للحصول على صورة بتدرجات الرمادي، و هذه الدالة أساسية عند التعامل مع بيانات الصور في مشاريع تعلم الآلة ورؤية الحاسوب.
- 6 اجابة
-
- 1
-
-
المشكلة التي تواجهها هي أنك تحاول تحميل بيانات باستخدام pd.read_csv ولكنك تقدم مسارا لمجلد بدلا من ملف CSV، إذا كنت تريد تحميل الصور من هذا المجلد، فاستخدم مكتبة مثل os أو glob لقراءة أسماء الملفات وتحميل الصور باستخدام مكتبة مثل PIL أو cv2 بدلا من pandas.
- 3 اجابة
-
- 1
-
-
التلافيف هو العملية الأساسية التي يتم فيها تمرير مرشحات عبر الصورة لاستخراج الميزات المهمة مثل الحواف والأنماط، ثم يتم تطبيق التجميع Pooling لتقليل الأبعاد المكانية للصورة مع الاحتفاظ بأهم المعلومات، مما يقلل من الحسابات ويجعل النموذج أكثر كفاءة، و أكثر أنواع التجميع شيوعا هو التجميع الأعظمي، الذي يحتفظ بالقيم القصوى من كل منطقة مجمعة، وبعدها يتم تمرير الميزات المستخرجة عبر طبقة متصلة بالكاملFully Connected Layer، حيث يتم تحويلها إلى مصفوفة مسطحة تستخدم لاتخاذ القرارات النهائية، مثل تصنيف الصورة إلى الفئة الصحيحة.
- 5 اجابة
-
- 1
-
-
الدورة تغطي كلاهما حيث سيتم إستعمال نماذج موجودة أو مدربة سابقا و أيضا يتم إن شاء نماذج من الصفر، و يمكنك العثور على هذه الدروس في مسارات، تعلم الآلة، تطوير نماذج ذكاء اصطناعي لمتجر إلكتروني و تطبيقات عملية على نقل التعلم، و لكن من الأفضل أن تقوم بمشاهدة الدروس و المسارات كلها و بالترتيب، لأنها مترابطة و مكملة لبعضها و بسبب تخطيك لأحدها يمكن أن يفوتك معلومات مهمة في هذا المجال.
- 3 اجابة
-
- 1
-
-
الدورة تضعك على بداية الطريق، لكنها لا تعلمك تطوير الويب بالكامل، ما ستتعلمه في مسار مدخل إلى عالم الويب هو أنك ستأخذ مقدمة في بناء صفحات الويب، و أيضا ستتعلم أساسيات JavaScript، و هناك جزء عن الشبكات والخوادم، مما يعني أنك ستتعرف على كيفية تفاعل المتصفح مع السيرفرات، و أيضا ستتعرف على قواعد البيانات، مما يفيد في تطوير الويب.
-
يمكنك القيام بهذا الأمر بطريقة غير مباشرة عن طريق استخدام set، و الفكرة هي مقارنة طول القائمة الأصلية مع طول set الناتج عنها، لأن set يحتفظ فقط بالعناصر الفريدة. def all_unique(lst): return len(lst) == len(set(lst)) # اختبار numbers = [1, 2, 3, 4, 5] print(all_unique(numbers)) # True numbers = [1, 2, 3, 3, 5] print(all_unique(numbers)) # False إذا كانت القيم مكررة، فسيكون طول set(lst) أقل من طول القائمة الأصلية، مما يعني أن الأعداد ليست فريدة.
- 4 اجابة
-
- 1
-
-
الطريقة المتوفرة هي عن طريق البطاقات الإئتمانية أو بإستخدام Paypal، وبالتأكيدي الدفع يكون عن طريق الدولار، أما في حالة لم تتوفر لديك البطاقة يمكنك الإستعامة بأحد أقربائك حتى يقومون بشراء بطاقة هدية الخاصة بالأكاديمية و إرسالها لك و يمكنك تفعيلها في حسابك و إختيار الدورة التي تناسبك، يمكنك الإطلاع على هذا الأمر من هنا: https://support.academy.hsoub.com/how-to-buy-gift-card
-
لا يوجد فرق عملي من حيث الأداء بين الكودين، فكلاهما يؤدي نفس الوظيفة والفرق الوحيد هو في طريقة تحديد الأعمدة للحذف، و كلا الكودين متكافئان تماما، حيث يقومان بنفس العمليات داخليا في pandas، و أي فرق محتمل سيكون ضئيلا جدا وغير ملحوظ، لأن drop سيقوم بنفس معالجة الحذف بغض النظر عن الطريقة المستخدمة لاستخراج أسماء الأعمدة. من ناحية الوضوح والجودة الكود الأول أكثر وضوحا لأنه يوضح أن الحذف يتم بناء على أسماء الأعمدة، أما الكود الثاني أكثر اختصارا لكنه يعتمد على axis=1، مما قد يجعله أقل وضوحا للقارئ.
- 3 اجابة
-
- 1
-
-
الفرق بين الدالتين يعتمد على الغرض من استخدام كل منهما، حيث أن دالة drop تستخدم بشكل أساسي لحذف صفوف أو أعمدة محددة من الـ DataFrame بناء على أسمائها أو فهارسها، فيمكنك استخدامها لإزالة عمود معين أو صف معين عن طريق تحديد اسمه أو موقعه، و من جهة أخرى الدالة dropna مخصصة للتعامل مع البيانات المفقودة في الـ DataFrame، حيث تقوم بحذف الصفوف أو الأعمدة التي تحتوي على قيم مفقودة، إما إذا كانت تحتوي على أي قيمة مفقودة أو إذا كانت جميع قيمها مفقودة.
-
هذه الأدوات ليست سوى وسائل لتعزيز القدرات البشرية وليس استبدالها بالكامل، فالذكاء الاصطناعي يمكنه أتمتة المهام الروتينية وتحليل البيانات بشكل أسرع، لكنه لا يزال بحاجة إلى التوجيه البشري لفهم السياق، واتخاذ القرارات الإستراتيجية، وطرح الأسئلة الصحيحة، بالنسبة لك إذا كنت شغوفا بمجال البيانات والذكاء الاصطناعي، فلا يجب أن تتوقف عن التعلم والتطور، ركز على تطوير مهاراتك في مجالات مثل التفكير النقدي، وفهم الأعمال التي يصعب على الآلات تقليدها، و أيضا استخدم هذه الأدوات الجديدة لتعزيز عملك بدلا من اعتبارها تهديدا.
-
في سياق تعلم الآلة من غير الطبيعي أن يكون لديك تباين كبير في عدد الأعمدة بين train_labels و validation_labels، حيث عادة ما يكون لكل من بيانات التدريب والتحقق نفس البنية، حيث يجب أن يكون عدد الأعمدة متسقا بينهما، إذا كان لديك 5 أعمدة في train_labels و 123 عمودا في validation_labels، فهذا يشير إلى وجود خطأ في عملية تحضير البيانات أو تقسيمها. من المهم التحقق من الخطوات التي تم اتباعها لتقسيم البيانات وتكوين التسميات فقد يكون السبب في هذا التباين هو خطأ في الترميز أو في عملية التقسيم، إذا كنت تستخدم ترميز one-hot encoding للتسميات، فتأكد من أنه تم تطبيقه بشكل صحيح على كل من بيانات التدريب والتحقق. و أيضا تأكد من أن البيانات تم تقسيمها بشكل صحيح قبل تطبيق أي تحويلات عليها، و إذا كانت المشكلة مستمرة قد تحتاج إلى مراجعة الكود الخاص بتحضير البيانات وإعادة فحص الخطوات التي تم اتباعها لتجنب أي أخطاء في المستقبل.
- 5 اجابة
-
- 1
-
-
يعتبر الترميز باستخدام One-hot Encoding طريقة بسيطة لتحويل المتغيرات الفئوية إلى تمثيل عددي يمكن للحواسيب التعامل معه بسهولة ففي هذه الطريقة يتم تحويل كل فئة إلى متجه ثنائي حيث يكون عنصر واحد فقط مساويا للرقم 1 مما يدل على وجود تلك الفئة بينما تكون بقية العناصر مساوية للصفر. وبهذا ينشَأ بُعد منفصل لكل فئة فريدة، مما يؤدي إلى الحصول على متجهات عالية الأبعاد ومتفرقة (Sparse Vectors) في حال زيادة عدد الفئات ومن الجدير بالذكر أن هذه الطريقة لا تظهر أي تشابه أو علاقة دلالية بين الفئات، إذ أن جميع المتجهات تكون متعامدة مع بعضها البعض، مما يعني أنه لا يمكن استنتاج أي علاقة بين الفئات اعتمادا على هذه التمثيلات لذلك تعتبر هذه التقنية ملائمة للمجموعات الصغيرة التي تحتوي على عدد محدود من الفئات فهي سهلة التطبيق وسريعة. ويمكنك الاطلاع من هنا على كيفية تطبيق One-Hot Encoding باستخدام مكتبة Sklearn: فبالرغم من أنه ينتج متجهات عالية الأبعاد لكنه لا يظهر أي علاقة بين الفئات في حين أنّ ال Embedding Layer يتعلم تمثيلا كثيفا ومنخفض الأبعاد إلا أنه يمكنه التقاط العلاقات الدلالية بين الفئات، مما يجعله أكثر كفاءة عند التعامل مع مجموعات بيانات كبيرة أو مفردات واسعة.
- 5 اجابة
-
- 1
-
-
يمكنك مراجعة مسارات الدورة، مميزاتها والدروس التي تتناولها من هنا، أين يمكنك تصفحها وتصفح العناوين التي ستتطرق إليها الدورة بشكل كامل يمكنك الوصول إلى معلومات أي دورة من خلال التوجه في أعلى هذه الصفحة، ثم تبويبة "دورات" اضغط عليها: ثم ستفتح لك صفحة جديدة تحتوي على بطاقات لجميع الدورات المتواجدة في الأكاديمية: قم بالضغط على "دورة الذكاء الاصطناعي" أو يمكنك الوصول إليها مباشرة من هنا: وإذا أردت تصفح مساراتها وعناوين الدروس يمكنك الوصول إليها من خلال صفحة الدورة من هنا: https://academy.hsoub.com/learn/artificial-intelligence/ وستلاحظ أن بعض الدروس داخل بعض المسارات هو مجاني ويمكن تصفحه بشكل عادي، مثلا في هذا المسار: تطبيقات عملية على نماذج الرؤية الحاسوبية ستجد أن الدرس السادس منه مختلف عن بقية الدروس فهو يظهر على شكل رابط يمكنك تصفحه، لاحظ: ويتم التطرق فيه إلى Fine Tuning وكيفية تعديل نماذج مدربة مسبقا لتتلاءم مع مجموعة بيانات جديدة يمكنك إلقاء نظرة عامة على هاته الدروس وفي حال أردت شراء الدورة يمكنك التواصل مع مركز مساعدة أكاديمية حاسوب فهم المخولون بالمسائل المالية. وفي حال اشتريتها ستلاحظ أن المسارات الأولى من بقية الدورات قد فتحت بالكامل لك، وهذه ميزة من مزايا دورات الأكاديمية، لتتيح لطلبتها إلقاء نظرة عامة عليها، فمثلا يمكنك دراسة أول مسار من دورة لغة بايثون، ثم العودة لتكملة دورة الذكاء الاصطناعي.
-
لاحظ أن هنالك عدم تطابق لحالة الأحرف في كلمة Department بين تعريف المسارات واستخدامها ففي ملف التوجيهات (Routes) المسارات معرفة بحرف كبير: Route::get('Department/create', [DepartmentController::class, 'create']); بينما في رابط الصفحة (index.blade.php) الرابط يستخدم حرف صغير: <a href="/department/create">إضافة قسم</a> وفي المتحكم نجد أن view يستخدم حرف صغير: return view('department.create'); فالمسارات حساسة لحالة الأحرف و /Department/create مختلف تماما عن /department/create وعندما تضغط على الرابط في صفحة index سيقوم المتصفح بإرسال طلب إلى /department/create (بحرف صغير) لكن Laravel يبحث عن مسار معرف باسم Department/create (بحرف كبير) ولا يجده فيعرض خطأ 404. لذا قم بتعديل جميع المسارات لتستخدم نفس حالة الأحرف والأفضل استخدام أحرف صغيرة للمسارات لأن هذا هو الأسلوب الشائع في Laravel: Route::get('department', [DepartmentController::class, 'index'])->name('department.index'); Route::get('department/create', [DepartmentController::class, 'create'])->name('department.create'); Route::post('department', [DepartmentController::class, 'store'])->name('department.store');
- 16 اجابة
-
- 1
-