[PYTHON] Je ne veux pas utiliser -inf avec np.log

TL;DR

Spécifiez la valeur minimale (valeur maximale) avec np.clip!

Environnement d'exécution

Que se passe-t-il?

Dans le type float de python, la valeur inférieure à «1e-323» sera 0,0. Le type flottant de python peut aller de -1,7976931348623157e + 308 à 1,9796931348623157e + 308 dans de nombreux environnements.

$ python
>>> a = 1e-323
>>> b = 1e-324
>>> print(a)
 1e-323
>>> print(b)
 0.0

Puisque b devient 0,0, si vous vous connectez pour ce b, une erreur se produira et il deviendra -inf. De plus, un avertissement de 0% apparaîtra.

>>> import numpy as np
>>> b = 1e-324
>>> np.log(b)
 __main__:1: RuntimeWarning: divide by zero encountered in log
 -inf

Solution

Spécifiez la valeur minimale (valeur maximale) avec np.clip.

>>> import numpy as np
>>> b = 1e-324
>>> np.log(np.clip(a=b, a_min=1e-323, a_max=1e+10))
 -743.7469247408213

En spécifiant la valeur minimale (valeur maximale), il sera possible de calculer même si une valeur en dehors de la plage flottante est entrée. Cependant, les valeurs qui dépassent la valeur minimale (valeur maximale) sont arrondies aux valeurs définies, ce qui présente l'inconvénient d'augmenter l'erreur.

Recommended Posts

Je ne veux pas utiliser -inf avec np.log
Je veux utiliser MATLAB feval avec python
Je souhaite utiliser le répertoire temporaire avec Python2
Je souhaite utiliser ip vrf avec SONiC
Je veux faire ○○ avec les Pandas
Je veux déboguer avec Python
Je souhaite utiliser facilement les fonctions R avec le notebook ipython
[Python] Je souhaite utiliser l'option -h avec argparse
Je souhaite utiliser un environnement virtuel avec jupyter notebook!
Je veux détecter des objets avec OpenCV
Je veux écrire un blog avec Jupyter Notebook
Je veux utiliser jar de python
Je veux utiliser Linux sur mac
Je veux installer Python avec PythonAnywhere
Je veux analyser les journaux avec Python
Je veux jouer avec aws avec python
Je souhaite utiliser un caractère générique que je souhaite décortiquer avec Python remove
Je souhaite utiliser une bibliothèque externe avec IBM Cloud Functions
Je veux vraiment utiliser GitHub Flavored Markdown (GFM) avec Pelican!
J'ai essayé d'utiliser lightGBM, xg boost avec Boruta
Je veux moquer datetime.datetime.now () même avec pytest!
Je souhaite afficher plusieurs images avec matplotlib.
Je veux frapper 100 sciences des données avec Colaboratory
Je veux faire un jeu avec Python
Je veux être OREMO avec setParam!
Je ne veux pas passer un test de codage
Je veux utiliser le solveur ceres de python
#Unresolved Je veux compiler gobject-introspection avec Python3
Je veux résoudre APG4b avec Python (chapitre 2)
Je veux recommencer avec Migrate de Django
Je veux écrire dans un fichier avec Python
Je souhaite utiliser la fonction d'activation Mish
Parce que je ne veux pas sortir avec des gens dont le bureau est sale
Je veux utiliser mkl avec numpy et scipy sous l'environnement pyenv + poetry
Je veux convertir une image en WebP avec sucette
Je souhaite détecter une connexion non autorisée à Facebook avec Jubatus (1)
Je veux faire la transition avec un bouton sur le ballon
Je veux utiliser self avec Backpropagation (tf.custom_gradient) (tensorflow)
Je veux gérer l'optimisation avec python et cplex
Je veux escalader une montagne avec l'apprentissage par renforcement
Je veux hériter de l'arrière avec la classe de données python
Je veux travailler avec un robot en python.
Je veux diviser une chaîne de caractères avec hiragana
Je veux AWS Lambda avec Python sur Mac!
Je souhaite créer manuellement une légende avec matplotlib
[TensorFlow] Je souhaite traiter des fenêtres avec Ragged Tensor
Je souhaite utiliser OpenJDK 11 avec Ubuntu Linux 18.04 LTS / 18.10
Je veux utiliser le jeu de données R avec python
Je veux faire fonctionner un ordinateur quantique avec Python
Je veux lier une variable locale avec lambda
Je veux résoudre SUDOKU
[Python] Je veux ajouter un répertoire statique avec Flask [Je veux utiliser autre chose que statique]
[Python] Je souhaite utiliser uniquement l'index lors de la mise en boucle d'une liste avec une instruction for
Je veux pouvoir analyser des données avec Python (partie 3)
Je souhaite supprimer l'avertissement d'importation non résolue de Python avec vsCode
Je souhaite spécifier une autre version de Python avec pyvenv
Je veux créer un éditeur de blog avec l'administrateur de django
Je veux démarrer un environnement Jupyter avec une seule commande