"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > لماذا يتدرب نموذج Keras الخاص بي فقط على جزء من مجموعة البيانات الخاصة بي؟

لماذا يتدرب نموذج Keras الخاص بي فقط على جزء من مجموعة البيانات الخاصة بي؟

تم النشر بتاريخ 2024-11-18
تصفح:785

 Why does my Keras model only train on a portion of my dataset?

تناقض بيانات تدريب Keras

أثناء اتباع دليل TensorFlow الرسمي لبناء شبكة عصبية مع Keras، لاحظت أن النموذج يستخدم فقط جزء من مجموعة البيانات المتاحة أثناء التدريب، على الرغم من وجود 60.000 إدخال.

دفعة الفهم الحجم

الرقم 1875 المعروض أثناء تركيب النموذج ليس مؤشرًا لعينات التدريب بل عدد الدُفعات. يحتوي الأسلوب model.fit على وسيطة اختيارية، Batch_size، والتي تحدد عدد نقاط البيانات التي تتم معالجتها في وقت واحد أثناء التدريب.

إذا لم تحدد Batch_size، فإن القيمة الافتراضية هي 32. في هذه الحالة، مع مجموعة بيانات إجمالية مكونة من 60,000 صورة، يصبح عدد الدُفعات:

60000 / 32 = 1875

لذلك، على الرغم من أن لديك 60.000 نقطة بيانات، فإن النموذج يتدرب فعليًا على 1875 دفعة، تحتوي كل دفعة على 32 نقطة بيانات. هذه ممارسة شائعة لتقليل أثر الذاكرة وتحسين سرعة التدريب.

ضبط حجم الدفعة

لاستخدام مجموعة البيانات بأكملها أثناء التدريب دون تجميع، يمكنك تحديد Batch_size 60000 في طريقة model.fit. ومع ذلك، من المحتمل أن يؤدي هذا إلى إبطاء التدريب ويتطلب المزيد من الذاكرة.

بدلاً من ذلك، يمكنك ضبط Batch_size لإيجاد حل وسط بين كفاءة التدريب واستخدام الذاكرة. على سبيل المثال، يمكنك ضبطه على 1024 أو 2048، مما يؤدي إلى تقليل عدد الدُفعات بشكل كبير دون التضحية بالكثير من الأداء.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3