Meezo ML نشر 10 يوليو 2021 أرسل تقرير نشر 10 يوليو 2021 ظهور الخطأ Out Of Memory (OOM) error في Keras عندما استخدم طبقة التضمين Embedding؟ اقتباس
2 Ali Haidar Ahmad نشر 10 يوليو 2021 أرسل تقرير نشر 10 يوليو 2021 بشكل افتراضي وتلقائي، يتم تشغيل طبقة التضمين على ال GPU في حال كانت متوفرة، من أجل الحصول على أفضل أداء، هذا يعني أن مصفوفة التضمين "embedding matrix"ستم وضعها في ال GPU وهنا قد تنتج المشكلة في حال كانت مصفوفة التضمين ضخمة وبالتالي لايمكن عمل fitting لها في ال GPU فيظهر هذا الخطأ، ولحل هذه المشكلة يجب أن تقوم بوضعها في ال "CPU memory" ويمكنك القيام بذلك بالشكل التالي: with tf.device('cpu:0'): embedding_layer = Embedding(...) embedding_layer.build() ثم بعد ذلك يمكنك أن تضيفها إلى نموذجك بالشكل التالي: model.add(embedding_layer) # Wherever_there_is_artificial_intelligence,_there is me 1 اقتباس
1 ريم المهدي نشر 11 يوليو 2021 أرسل تقرير نشر 11 يوليو 2021 لتتمكن من تفادي هذا الخطأ يمكنك التأكد من الاتي: قم بإستخدام text_to_word_sequence لتحويل النصوص إلى أرقام مقابلة للكلمات، إستخدم pad_sequences لجعل أرقام الكلمات متناسبة الطول، الان يمكنك إستخدام embedding layer والان يمكنك تدريب النموذج بالكلمات المحولة لمتجهات، إذا كنت تستخدم LSTM يمكنك إستخدام GRU بدلاً منه لأنه نموذج أبسط، - إذا لم تزل المشكلة قائمة، يمكنك تحويل الأرقام إلى قيم أقل مساحة بإستخدام tf.keras.backend.set_floatx('float16') بذلك تتحول كل القيم من float64 إلى حجم أصغر float16. - يمكنك أيضاً تقليص حجم العقد في الطبقات الأخيرة من النموذج، ذلك بإضافة dense layer لها عدد عقد أقل. - يمكنك التأكد من حجم المتغير maxlen في pad_sequences، يمكنك مراجعة أطول نص في مجموعة البيانات و بذلك تحدد قيمة ملء العينات الناقصة فقط للحد الأقصى لعدد الكلمات في نص وليس بإستخدام رقم كبير غير مبرر. - يمكنك أيضاً زيادة batch_size للإكثار من حجم العينات المأخوذة في مرة التدريب الواحدة. اقتباس
السؤال
Meezo ML
ظهور الخطأ Out Of Memory (OOM) error في Keras عندما استخدم طبقة التضمين Embedding؟
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.