Kezdőoldal » Számítástechnika » Programozás » Pythonban ezt a hibakódot...

Pythonban ezt a hibakódot kapom: OverflowError: (34, 'Result too large'). Mit tegyek?

Figyelt kérdés

Már kaptam ezt a hibát, ha túl nagy volt egy szám a következő függvénynél, ahol x egy numpy array:


def sigmoid(x):

return 1/ (1 + np.e**(-x))


Megpróbáltam kijavítani, hogy a nagyon nagy vagy kicsi számokra rávágja az eredményt:


def sigmoid(x):

return np.where((x<=20)&(x>=-20),1 / (1 + np.e**(-x)),np.where(x>0,1,0))


De így is ugyanazt a hibát kapom, de nem értem hol kap akkora számot, hogy kiakadjon a program.


Válaszokat előre is köszönöm.

(A listán elemről elemre végigmenést mellőzném mert nagyon lassítja a programot, ezért dolgozok numpy arrayekkel és ilyen függvényekkel)



#Python #numy
2020. szept. 19. 21:03
 1/4 anonim ***** válasza:

"The "Result too large" doesn't refer to the number of characters in the decimal representation of the number, it means that the number that resulted from your exponential function is large enough to overflow whatever type python uses internally to store floating point values.

You need to either use a different type to handle your floating point calculations, or rework you code so that e**(-x) doesn't overflow or underflow."

[link]

2020. szept. 19. 22:02
Hasznos számodra ez a válasz?
 2/4 A kérdező kommentje:
De pont ezért írtam a második függvényt: az arrayben ahol egy szám -20 es 20 között van azt sigmoidba teszi (tehát maximum az e**20 vagy e**-20 -t kell kiszámolja ami még elég kicsi szám), máskülönben ahol egy szám nagyobb mint 0 tehát nagyobb mint 20 és overflowot okozhat arra rávágja hogy 1 ellenben ha kisebb mint 0 tehát kisebb mint -20 és overflowot okozhat arra rávágja, hogy 0.
2020. szept. 20. 08:47
 3/4 anonim ***** válasza:

Számold ki, mit kell adjon az "np.e**(-x)", és nézd meg, elfér-e a float típusban. A második esetben el sem jut a vizsgálatig, mert a kifejezést sem tudja kiértékelni.


[link]

2020. szept. 22. 11:02
Hasznos számodra ez a válasz?
 4/4 anonim ***** válasza:

** "A második esetben el sem jut a vizsgálatig"

Ezt a mondatot visszavonom, nem néztem meg elég jól a kódot.

2020. szept. 22. 12:04
Hasznos számodra ez a válasz?

További kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!