Numpy: Как попасть внутрь "переполнения, обнаруженного в exp"? - PullRequest
0 голосов
/ 23 апреля 2020

Первое сообщение, пожалуйста, будьте осторожны!

Я пытаюсь root найти экспоненциальную функцию 1/(np.exp((j-w)/x)-1), и я обнаружил, что получаю RuntimeWarning: overflow encountered in exp.

Я понимаю, что это связано с ограничениями на float64, но я не могу вставить код, чтобы понять, откуда это происходит. Я попытался включить несколько try...except OverflowError блоков, чтобы я мог заглянуть внутрь, где это происходит, но, кажется, никогда не поймал это.

У меня есть идеи, как справиться с этим, пока я могу получить мой код, чтобы сделать что-то другое, когда он сталкивается с переполнением.

Заранее спасибо!

1 Ответ

0 голосов
/ 23 апреля 2020

Я предполагаю, что проблема в том, что вы не можете понять, когда происходит предупреждение. Для этого используйте try / except, но в слегка измененном виде:

import warnings
warnings.filterwarnings("error")
...
try:
    1/(np.exp((j-w)/x)-1)
except RuntimeWarning:
    print(j)
    print(w)
    print(x)
    print((j-w)/x)

Это должно дать подсказку, в этом проблема

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...