Nasıl düzeltilir: runtimewarning: exp'de taşmayla karşılaşıldı
Python’da karşılaşabileceğiniz bir uyarı:
RuntimeWarning: overflow encountered in exp
Bu uyarı, exp NumPy işlevini kullandığınızda ancak işlenemeyecek kadar büyük bir değer kullandığınızda ortaya çıkar.
Bunun yalnızca bir uyarı olduğunu ve NumPy’nin yine de istediğiniz hesaplamayı gerçekleştireceğini ancak varsayılan olarak uyarıyı sağladığını unutmamak önemlidir.
Bu uyarıyla karşılaştığınızda iki seçeneğiniz var:
1. Görmezden gelin.
2. Uyarıyı tamamen kaldırın.
Aşağıdaki örnekte bu uyarıya pratikte nasıl yanıt verileceği gösterilmektedir.
Uyarı nasıl yeniden oluşturulur?
Python’da aşağıdaki hesaplamayı yaptığımızı varsayalım:
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
Hesaplamayı NumPy’nin yaptığını (sonuç 0,0) ancak yine de RuntimeWarning’i yazdırdığını unutmayın.
Bu uyarı yazdırılır çünkü np.exp(1140) değeri çok büyük bir sayı olan e 1140’ı temsil eder.
Temel olarak NumPy’den aşağıdaki hesaplamayı yapmasını istedik:
- 1 / (1 + büyük sayı)
Bu şu şekilde azaltılabilir:
- 1 / büyük sayı
Gerçekten 0’dır, bu nedenle NumPy sonucu 0,0 olarak hesaplamıştır.
Uyarı nasıl kaldırılır
Eğer istersek uyarıları bastırmak için warns paketini şu şekilde kullanabiliriz:
import numpy as np import warnings #remove warnings warnings. filterwarnings (' ignore ') #perform some calculation print (1/(1+np. exp (1140))) 0.0
NumPy’nin hesaplamayı gerçekleştirdiğini ve RuntimeWarning’i görüntülemediğini unutmayın.
Not : Genel olarak uyarılar, yürütülmesi uzun süren kod parçalarının belirlenmesinde yardımcı olabilir. Bu nedenle uyarıları kaldırmaya karar verirken çok seçici olun.
Ek kaynaklar
Aşağıdaki eğitimlerde Python’daki diğer yaygın hataların nasıl düzeltileceği açıklanmaktadır:
Pandas’ta KeyError Nasıl Düzeltilir
Nasıl düzeltilir? ValueError: float NaN int’ye dönüştürülemiyor
Nasıl düzeltilir? ValueError: İşlenenler şekillerle yayınlanamadı