log_sum_exp

举报
风吹稻花香 发表于 2021/06/04 22:37:35 2021/06/04
【摘要】 log_sum_exp scipy.misc.logsumexp函数的输入参数有(a, axis=None, b=None, keepdims=False, return_sign=False),具体配置可参见这里,返回的值是np.log(np.sum(np.exp(a)))。 这里需要强调的是使用该函数的场景: 一般来说,该函数主要用于非常小的数值的运算(比如蒙特卡洛取样...

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
       """
       x_max = x.data.max()
      return torch.log(torch.sum(torch.exp(x-x_max), 1, keepdim=True)) + x_max
  
 

 

文章来源: blog.csdn.net,作者:网奇,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/jacke121/article/details/102632367

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。