Pythonban ezt a hibakódot kapom: OverflowError: (34, 'Result too large'). Mit tegyek?
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)
"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."
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.
** "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.
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!