输入向量
[
1
,
2
,
3
,
4
,
1
,
2
,
3
]
{\displaystyle [1,2,3,4,1,2,3]}
对应的Softmax函数的值为
[
0.024
,
0.064
,
0.175
,
0.475
,
0.024
,
0.064
,
0.175
]
{\displaystyle [0.024,0.064,0.175,0.475,0.024,0.064,0.175]}
。输出向量中拥有最大权重的项对应着输入向量中的最大值“4”。这也显示了这个函数通常的意义:对向量进行归一化,凸显其中最大的值并抑制远低于最大值的其他分量。
下面是使用Python进行函数计算的範例程式碼:
import math
z = [1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0]
z_exp = [math.exp(i) for i in z]
print(z_exp) # Result: [2.72, 7.39, 20.09, 54.6, 2.72, 7.39, 20.09]
sum_z_exp = sum(z_exp)
print(sum_z_exp) # Result: 114.98
softmax = [round(i / sum_z_exp, 3) for i in z_exp]
print(softmax) # Result: [0.024, 0.064, 0.175, 0.475, 0.024, 0.064, 0.175]
Python使用numpy计算的示例代码:
import numpy as np
z = np.array([1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0])
print(np.exp(z)/sum(np.exp(z)))
Julia 的範例:
julia> A = [1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0]
7-element Array{Float64,1}:
1.0
2.0
3.0
4.0
1.0
2.0
3.0
julia> exp.(A) ./ sum(exp.(A))
7-element Array{Float64,1}:
0.0236405
0.0642617
0.174681
0.474833
0.0236405
0.0642617
0.174681