import numpy as np
import math
def softmax(scores: list[float]) -> list[float]:
e_sum = 0
probabilities = list(scores)
for i in range(len(scores)):
temp = math.exp(scores[i])
e_sum += temp
probabilities[i] = temp
probabilities = list(np.round(np.array(probabilities)/e_sum, 4))
return probabilities
if __name__ == "__main__":
scores = np.array(eval(input()))
print(softmax(scores))
这道题主要考softmax的定义公式,
softmax(x)=[e^xi/sum(e^xi)]
需要注意计算后保留4位小数,这里使用np.round进行保留

京公网安备 11010502036488号