オーバーフローに注意! (3/3)
>>> a = np.array([1010, 1000, 900])
>>> np.exp(a) / np.sum(np.exp(a))
Warning...
array([nan, nan, nan])
>>>
>>> a_max = np.max(a)
>>> a - a_max
array([ 0, -10, -110])
>>>
>>> np.exp(a - a_max) / np.sum(np.exp(a - a_max))
array([9.99954602e-01, 4.53978687e-05, 1.68883521e-48])
↑ちゃんと計算できた!