Какой эффективный способ записи суммы от i = 1 до n, log (1 + exp (w_i)) в Numpy - PullRequest
1 голос
/ 16 января 2020

Пусть w = (w_1, w_2, w_3, ...., w_n) массив, n большой

Без использования циклов я хочу определить функцию

сумма от i = 1 до i = n , log(1 + exp(w_i))

Есть ли векторная операция, которая обрабатывает это в Numpy? Я думал о

np.dot(np.ones((n,)), np.log(1+np.exp(w))

, но я не знаю, работает ли это.

1 Ответ

3 голосов
/ 16 января 2020

Вы можете использовать np.sum(...) для суммирования всех элементов массива.

Хотя np.log(1+np.exp(w)) должно работать нормально, есть также np.log1p(...), который вычисляет ln из одного плюс значения с большей точностью в случае очень маленьких чисел.

Собираем все вместе:

result = np.sum(np.log1p(np.exp(w)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...