1

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))

但我不知道这是否有效。

4

1 回答 1

3

您可以使用np.sum(...)对数组的所有元素求和。

虽然np.log(1+np.exp(w))应该可以正常工作,但np.log1p(...)在数字非常小的情况下,它还可以以更高的精度计算一加值的 ln。

把它们放在一起:

result = np.sum(np.log1p(np.exp(w)))
于 2020-01-16T17:24:53.567 回答