كيفية الإصلاح: تحذير وقت التشغيل: تمت مواجهة تجاوز السعة في exp


التحذير الذي قد تواجهه في بايثون هو:

 RuntimeWarning: overflow encountered in exp

يحدث هذا التحذير عند استخدام الدالة exp NumPy، ولكنك تستخدم قيمة كبيرة جدًا بحيث لا يمكن التعامل معها.

من المهم ملاحظة أن هذا مجرد تحذير وأن NumPy سيستمر في إجراء العملية الحسابية التي طلبتها، ولكنه يوفر التحذير افتراضيًا.

عندما تواجه هذا التحذير، لديك خياران:

1. تجاهلها.

2. قم بإزالة التحذير بالكامل.

يوضح المثال التالي كيفية الاستجابة لهذا التحذير عمليًا.

كيفية إعادة إنتاج التحذير

لنفترض أننا نقوم بالحساب التالي في بايثون:

 import numpy as np

#perform some calculation
print (1/(1+np. exp (1140)))

0.0

/srv/conda/envs/notebook/lib/python3.7/site-packages/ipykernel_launcher.py:3:
RuntimeWarning: overflow encountered in exp

لاحظ أن NumPy يقوم بالحساب (النتيجة هي 0.0) ولكنه لا يزال يطبع RuntimeWarning .

تتم طباعة هذا التحذير لأن القيمة np.exp(1140) تمثل e 1140 ، وهو رقم هائل .

لقد طلبنا بشكل أساسي من NumPy إجراء العملية الحسابية التالية:

  • 1/ (1 + عدد هائل)

يمكن اختزال هذا إلى:

  • 1/ عدد هائل

إنها بالفعل 0، ولهذا السبب قام NumPy بحساب النتيجة على أنها 0.0 .

كيفية إزالة التحذير

إذا أردنا، يمكننا استخدام حزمة التحذيرات لقمع التحذيرات على النحو التالي:

 import numpy as np
import warnings

#remove warnings
warnings. filterwarnings (' ignore ')

#perform some calculation
print (1/(1+np. exp (1140)))

0.0

لاحظ أن NumPy يقوم بإجراء العملية الحسابية ولا يعرض RuntimeWarning.

ملاحظة : بشكل عام، يمكن أن تكون التحذيرات مفيدة في تحديد أجزاء التعليمات البرمجية التي يستغرق تنفيذها وقتًا طويلاً. لذا كن انتقائيًا للغاية عند اتخاذ قرار بإزالة التحذيرات.

مصادر إضافية

تشرح البرامج التعليمية التالية كيفية إصلاح الأخطاء الشائعة الأخرى في بايثون:

كيفية إصلاح KeyError في الباندا
كيفية الإصلاح: خطأ القيمة: غير قادر على تحويل float NaN إلى int
كيفية الإصلاح: خطأ في القيمة: لا يمكن بث المعاملات بالأشكال

Add a Comment

ایمئیل یایینلانمایاجاق ایسته‎نیله‎ن بوشلوقلار خاللانمیشدیر *