log_softmax能够解决函数overflow和underflow,加快运算速度,提高数据稳定性。
softmax:
exp(x_i) / exp(x).sum()
softmax在输入很大的时候,会产生向上溢出,超出float的表示范围。输入很小时,分子分母很小,可能四舍五入为0,导致向下溢出。
log_softmax:
log( exp(x_i) / exp(x).sum() )
实际操作上如下,M是x中的最大值
参考资料
log_softmax能够解决函数overflow和underflow,加快运算速度,提高数据稳定性。
softmax:
exp(x_i) / exp(x).sum()
softmax在输入很大的时候,会产生向上溢出,超出float的表示范围。输入很小时,分子分母很小,可能四舍五入为0,导致向下溢出。
log_softmax:
log( exp(x_i) / exp(x).sum() )
实际操作上如下,M是x中的最大值
参考资料