TL;DR
Geben Sie den Minimalwert (Maximalwert) mit np.clip
an!
Im Float-Python-Typ ist der Wert kleiner als "1e-323" 0,0. Der Float-Python-Typ kann in vielen Umgebungen von -1,7976931348623157e + 308 bis 1,9796931348623157e + 308 reichen.
$ python
>>> a = 1e-323
>>> b = 1e-324
>>> print(a)
1e-323
>>> print(b)
0.0
Da b zu 0.0 wird, tritt beim Anmelden für dieses b ein Fehler auf und es wird -inf. Außerdem wird eine 0% -Warnung angezeigt.
>>> import numpy as np
>>> b = 1e-324
>>> np.log(b)
__main__:1: RuntimeWarning: divide by zero encountered in log
-inf
Geben Sie den Minimalwert (Maximalwert) mit np.clip
an.
>>> import numpy as np
>>> b = 1e-324
>>> np.log(np.clip(a=b, a_min=1e-323, a_max=1e+10))
-743.7469247408213
Durch Angabe des Minimalwerts (Maximalwert) kann berechnet werden, auch wenn ein Wert außerhalb des Float-Bereichs eingegeben wird. Werte, die den Minimalwert (Maximalwert) überschreiten, werden jedoch auf die eingestellten Werte gerundet, was den Nachteil hat, dass der Fehler erhöht wird.
Recommended Posts