1
Amy 原创整理|资料核验:2026-11-04
NumPy官方将logaddexp定义为log(exp(x1)+exp(x2))。它适合处理以对数形式保存的极小数值,避免为了相加而先把它们还原到普通浮点表示。
教学示例:两份未归一化权重的自然对数都是-1000。它们的总和的对数应为-1000+log(2),约-999.3068528。因此np.logaddexp(-1000,-1000)返回的仍是对数尺度,不是原始权重,也不是-2000。示例不对应真实概率或业务数据。
Amy建议:变量名中明确区分log_weight与weight,尤其不要把原始数值误传进本应接收对数的步骤。这个函数解决的是数值表达与相加问题,不会自动保证权重已归一化。若最后又直接计算exp(-999.3068528),普通浮点精度下仍可能下溢;需要保留对数结果的流程,就别为了显示方便过早还原。
官方来源:
https://numpy.org/doc/stable/reference/generated/numpy.logaddexp.html