Python: переполнение включено в умножение - PullRequest
0 голосов
/ 07 февраля 2020

В процессе вычисления производной tanh dout является восходящим градиентом.

tanh (x) = (exp (2 * x) - 1) / (exp (2 * x) +1)

# this will encounter overflow in multiply
d_tanh = dout * 4 * np.exp(2*x)/((np.exp(2*x)+1) * (np.exp(2*x)+1))

# this will not, why?
d_tanh = dout * (1 - np.tanh(x) * np.tanh(x))

1 Ответ

0 голосов
/ 07 февраля 2020

Я подозреваю, что переполнение вызвано ошибкой деления на ноль. Проверьте свою 1 // ((np.exp (2 * x) +1) * (np.exp (2 * x) +1)) часть уравнения. Во втором уравнении делитель отсутствует, поэтому возможна ошибка DBZ.

...