[PYTHON] Ich möchte -inf nicht mit np.log verwenden

TL;DR

Geben Sie den Minimalwert (Maximalwert) mit np.clip an!

Ausführungsumgebung

Was ist los?

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

Lösung

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

Ich möchte -inf nicht mit np.log verwenden
Ich möchte MATLAB feval mit Python verwenden
Ich möchte Temporäres Verzeichnis mit Python2 verwenden
Ich möchte ip vrf mit SONiC verwenden
Ich möchte ○○ mit Pandas machen
Ich möchte mit Python debuggen
Ich möchte R-Funktionen einfach mit ipython notebook verwenden
[Python] Ich möchte die Option -h mit argparse verwenden
Ich möchte eine virtuelle Umgebung mit Jupyter Notebook verwenden!
Ich möchte Objekte mit OpenCV erkennen
Ich möchte einen Blog mit Jupyter Notebook schreiben
Ich möchte ein Glas aus Python verwenden
Ich möchte Linux auf dem Mac verwenden
Ich möchte eine Pip-Installation mit PythonAnywhere durchführen
Ich möchte Protokolle mit Python analysieren
Ich möchte mit aws mit Python spielen
Ich möchte einen Platzhalter verwenden, den ich mit Python entfernen möchte
Ich möchte eine externe Bibliothek mit IBM Cloud-Funktionen verwenden
Ich möchte wirklich GitHub Flavored Markdown (GFM) mit Pelican verwenden!
Ich habe versucht, lightGBM, xg Boost mit Boruta zu verwenden
Ich möchte datetime.datetime.now () auch mit pytest verspotten!
Ich möchte mehrere Bilder mit matplotlib anzeigen.
Ich möchte 100 Datenwissenschaften mit Colaboratory schlagen
Ich möchte ein Spiel mit Python machen
Ich möchte OREMO mit setParam sein!
Ich möchte keinen Codierungstest machen
Ich möchte Ceres Solver aus Python verwenden
#Unresolved Ich möchte Gobject-Introspection mit Python3 kompilieren
Ich möchte APG4b mit Python lösen (Kapitel 2)
Ich möchte mit Djangos Migrate von vorne beginnen
Ich möchte mit Python in eine Datei schreiben
Ich möchte die Aktivierungsfunktion Mish verwenden
Weil ich nicht mit Leuten ausgehen möchte, deren Desktops schmutzig sind
Ich möchte mkl mit numpy und scipy unter pyenv + Poesie verwenden
Ich möchte ein Bild mit Lollipop in WebP konvertieren
Ich möchte mit Jubatus (1) eine nicht autorisierte Anmeldung bei Facebook erkennen.
Ich möchte mit einem Knopf am Kolben übergehen
Ich möchte mich mit Backpropagation (tf.custom_gradient) (Tensorflow) selbst verwenden.
Ich möchte die Optimierung mit Python und CPlex behandeln
Ich möchte mit verstärkendem Lernen einen Berg besteigen
Ich möchte mit Python-Datenklasse nach hinten erben
Ich möchte mit einem Roboter in Python arbeiten.
Ich möchte eine Zeichenkette mit Hiragana teilen
Ich möchte Lambda mit Python auf Mac AWS!
Ich möchte manuell eine Legende mit matplotlib erstellen
[TensorFlow] Ich möchte Fenster mit Ragged Tensor verarbeiten
Ich möchte OpenJDK 11 mit Ubuntu Linux 18.04 LTS / 18.10 verwenden
Ich möchte R-Datensatz mit Python verwenden
Ich möchte einen Quantencomputer mit Python betreiben
Ich möchte eine lokale Variable mit Lambda binden
Ich möchte SUDOKU lösen
[Python] Ich möchte mit Flask ein statisches Verzeichnis hinzufügen. [Ich möchte etwas anderes als statisch verwenden.]
[Python] Ich möchte nur den Index verwenden, wenn ich eine Liste mit einer for-Anweisung schleife
Ich möchte Daten mit Python analysieren können (Teil 3)
Ich möchte Pythons ungelöste Importwarnung mit vsCode entfernen
Ich möchte eine andere Version von Python mit pyvenv angeben
Ich möchte einen Blog-Editor mit dem Administrator von Django erstellen
Ich möchte eine Jupyter-Umgebung mit einem Befehl starten