Jak naprawić: runtimewarning: napotkano przepełnienie w exp
Ostrzeżenie, które możesz napotkać w Pythonie, to:
RuntimeWarning: overflow encountered in exp
To ostrzeżenie pojawia się, gdy używasz funkcji exp NumPy, ale używasz wartości, która jest zbyt duża, aby mogła ją obsłużyć.
Należy pamiętać, że jest to tylko ostrzeżenie i NumPy nadal wykona żądane obliczenia, ale domyślnie wyświetla ostrzeżenie.
Kiedy zobaczysz to ostrzeżenie, masz dwie możliwości:
1. Zignoruj to.
2. Całkowicie usuń ostrzeżenie.
Poniższy przykład pokazuje, jak w praktyce zareagować na to ostrzeżenie.
Jak odtworzyć ostrzeżenie
Załóżmy, że wykonujemy następujące obliczenia w Pythonie:
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
Zauważ, że NumPy wykonuje obliczenia (wynik wynosi 0,0), ale nadal drukuje RuntimeWarning .
To ostrzeżenie jest drukowane, ponieważ wartość np.exp(1140) reprezentuje e 1140 , które jest liczbą ogromną .
Zasadniczo poprosiliśmy NumPy o wykonanie następujących obliczeń:
- 1 / (1 + ogromna liczba)
Można to sprowadzić do:
- 1 / ogromna liczba
Rzeczywiście jest to 0, dlatego NumPy obliczył wynik jako 0.0 .
Jak usunąć ostrzeżenie
Jeśli chcemy, możemy użyć pakietu warns , aby ukryć ostrzeżenia w następujący sposób:
import numpy as np import warnings #remove warnings warnings. filterwarnings (' ignore ') #perform some calculation print (1/(1+np. exp (1140))) 0.0
Należy pamiętać, że NumPy wykonuje obliczenia i nie wyświetla ostrzeżenia RuntimeWarning.
Uwaga : Ogólnie rzecz biorąc, ostrzeżenia mogą być pomocne w identyfikowaniu fragmentów kodu, których wykonanie zajmuje dużo czasu. Decydując się na usunięcie ostrzeżeń, należy więc zachować szczególną ostrożność.
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak naprawić inne typowe błędy w Pythonie:
Jak naprawić błąd KeyError w Pandach
Jak naprawić: ValueError: Nie można przekonwertować float NaN na int
Jak naprawić: Błąd wartości: Nie można rozgłaszać argumentów z kształtami