log_sum_exp
scipy.misc.logsumexp函数的输入参数有(a, axis=None, b=None, keepdims=False, return_sign=False),具体配置可参见这里,返回的值是np.log(np.sum(np.exp(a)))。
这里需要强调的是使用该函数的场景:
一般来说,该函数主要用于非常小的数值的运算(比如蒙特卡洛取样样本)。在这种情况下,将数据保持log处理是必须的。所以这时你如果想将数组中的数据累加求和就需要这样计算log(sum(exp(a))),但这样做就会产生一些精确性的问题,而这个问题scipy.misc.logsumexp是引进解决了的,所以进行小数据求和可以直接使用scipy.misc.logsumexp函数。
def log_sum_exp(x):
"""Utility function for computing log_sum_exp while determining
This will be used to determine unaveraged confidence loss across
all examples in a batch.
Args:
x (Variable(tensor)): conf_preds from conf layers
"""
logsumexp函数常用于处理非常小数值的运算,如蒙特卡洛取样。它解决了在计算log(sum(exp(a)))时可能出现的精确性问题,提供了一种准确计算小数据求和的方法。在需要对数组中非常小的数据进行累加求和时,可以借助scipy.misc.logsumexp来避免误差。
订阅专栏 解锁全文
1万+

被折叠的 条评论
为什么被折叠?



