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

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *