我正在尝试将softmax函数应用于numpy数组,但是我没有得到期望的结果。以下是我尝试过的代码:
import numpy as np
x = np.array([[1001,1002],[3,4]])
softmax = np.exp(x - np.max(x))/(np.sum(np.exp(x - np.max(x)))
print softmax
我认为
x - np.max(x)
代码没有对每行减去最大值。需要从x中减去最大值以防止出现非常大的数字。预期输出结果应该是:
np.array([
[0.26894142, 0.73105858],
[0.26894142, 0.73105858]])
但我得到的是:
np.array([
[0.26894142, 0.73105858],
[0, 0]])