Как исправить: runtimewarning: в exp обнаружено переполнение


Предупреждение, с которым вы можете столкнуться в Python:

 RuntimeWarning: overflow encountered in exp

Это предупреждение появляется, когда вы используете функцию exp NumPy, но используете слишком большое значение для ее обработки.

Важно отметить, что это всего лишь предупреждение , и NumPy по-прежнему выполнит запрошенные вами вычисления, но по умолчанию выдает предупреждение.

Когда вы столкнетесь с этим предупреждением, у вас есть два варианта:

1. Не обращайте на это внимания.

2. Полностью удалите предупреждение.

В следующем примере показано, как на практике реагировать на это предупреждение.

Как воспроизвести предупреждение

Предположим, мы выполняем следующий расчет в Python:

 import numpy as np

#perform some calculation
print (1/(1+np. exp (1140)))

0.0

/srv/conda/envs/notebook/lib/python3.7/site-packages/ipykernel_launcher.py:3:
RuntimeWarning: overflow encountered in exp

Обратите внимание, что NumPy выполняет расчет (результат равен 0,0), но все равно печатает RuntimeWarning .

Это предупреждение выводится, поскольку значение np.exp(1140) представляет собой e 1140 , что является огромным числом.

По сути, мы попросили NumPy выполнить следующий расчет:

  • 1 / (1 + массивное число)

Это можно сократить до:

  • 1 / массивное число

Это действительно 0, поэтому NumPy вычислил результат как 0.0 .

Как убрать предупреждение

Если мы хотим, мы можем использовать пакет alerts для подавления предупреждений следующим образом:

 import numpy as np
import warnings

#remove warnings
warnings. filterwarnings (' ignore ')

#perform some calculation
print (1/(1+np. exp (1140)))

0.0

Обратите внимание, что NumPy выполняет расчет и не отображает RuntimeWarning.

Примечание . В целом предупреждения могут быть полезны для выявления фрагментов кода, выполнение которых занимает много времени. Поэтому будьте очень избирательны при принятии решения об удалении предупреждений.

Дополнительные ресурсы

В следующих руководствах объясняется, как исправить другие распространенные ошибки в Python:

Как исправить ошибку KeyError в Pandas
Как исправить: ValueError: невозможно преобразовать число с плавающей запятой NaN в int.
Как исправить: ValueError: операнды не могут быть переданы с помощью фигур.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *