题解 | Log Softmax函数的实现
Log Softmax函数的实现
https://www.nowcoder.com/practice/a8a0934f25f04c7e97d64d3e1b77219a
from functools import total_ordering
import numpy as np
def log_softmax(scores: list) -> np.ndarray:
scores=np.array(scores)
max_score=np.max(scores)
sum_scores=np.sum(np.exp(scores-max_score))
log_scores=np.log(sum_scores)
ans=scores-max_score-log_scores
return ans
if __name__ == "__main__":
scores = eval(input())
print(log_softmax(scores))
推导公式如下:
原始公式
加上max数值更加稳定的解法:
主要用了一个数值稳定性的解法,以及用np库将列表转化为数组计算更加便捷。
#刷AI算法的第二天

