Если я запустил это:
probs = np.array( [683.8336792, 861.69769287, 981.83361816, 834.32391357] )
softs = softmax([probs])[0]
print(softs)
softs всегда сильно искажается до наибольшего числа 981,83 - любая идея, почему?
[3.80426623e-130 6.69315016e-053 1.00000000e+000 8.65663825e-065]
Функция softmax из пакета sklearn
def softmax(X, copy=True):
if copy:
X = np.copy(X)
max_prob = np.max(X, axis=1).reshape((-1, 1))
X -= max_prob
np.exp(X, X)
sum_prob = np.sum(X, axis=1).reshape((-1, 1))
X /= sum_prob
return X