ソフトマックス関数
2020/12/10
Python3.6.7, NumPy1.19.4
import numpy as np
def softmax(x):
e_x = np.exp(x - np.max(x))
return e_x / e_x.sum()
scores = [3.0, 1.0, 0.2]
print(softmax(scores))
#[0.8360188 0.11314284 0.05083836]
一行の方法。結果は一緒。上の方が数値の安定性の観点から望ましいらしい。
def softmax(x):
return np.exp(x) / np.sum(np.exp(x), axis=0)
PythonでSoftmax関数を実装する方法
https://www.it-swarm-ja.tech/ja/python/python%E3%81%A7softmax%E9%96%A2%E6%95%B0%E3%82%92%E5%AE%9F%E8%A3%85%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/822760858/
勉強のためpure pythonで実装したのはこちら
https://code.tiblab.net/python/calculate/softmax