def log_softmax(vec):
"""Robust version of the log of softmax values
Args:
vec: vector of log-odds
Returns:
A vector whose exponential sums to one with lgo of softmax values log(exp(x_k)/sum_i (exp(x_i)))
Examples:
>>> print(log_softmax(np.array([1.0, 1.0, 1.0, 1.0])))
[-1.38629436 -1.38629436 -1.38629436 -1.38629436]
>>> print(log_softmax(np.array([-1.0, -1.0, -1.0, -1.0])))
[-1.38629436 -1.38629436 -1.38629436 -1.38629436]
>>> print(log_softmax(np.array([1.0, 0.0, -1.0, 1.1])))
[-0.9587315 -1.9587315 -2.9587315 -0.8587315]
"""
return vec - logsumexp(vec)
评论列表
文章目录