수정 방법: 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 으로 계산했습니다.

경고를 제거하는 방법

원하는 경우 다음과 같이 경고 패키지를 사용하여 경고를 억제할 수 있습니다.

 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의 다른 일반적인 오류를 수정하는 방법을 설명합니다.

Pandas에서 KeyError를 수정하는 방법
수정 방법: ValueError: float NaN을 int로 변환할 수 없습니다.
해결 방법: ValueError: 피연산자를 모양과 함께 브로드캐스트할 수 없습니다.

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다