tf.keras.activations.softmax

tf.keras.activations.softmax는 벡터의 값들을 확률 분포로 변환합니다.



예제1

import tensorflow as tf

inputs = tf.random.normal((4, 4), seed=0)
outputs = tf.keras.activations.softmax(inputs)

print(inputs)
print(outputs)
print(tf.reduce_sum(outputs[0, :]))
print(tf.reduce_sum(outputs[1, :]))
print(tf.reduce_sum(outputs[2, :]))
print(tf.reduce_sum(outputs[3, :]))
tf.Tensor(
[[-0.3991576   2.1044393   0.17107224  0.54651815]
 [-2.4234028   0.422554    0.28943786 -0.5043041 ]
 [-0.96068907 -0.65109813  0.11453361 -0.10354779]
 [-1.300912   -0.5038757   0.02013604 -0.09342099]], shape=(4, 4), dtype=float32)
tf.Tensor(
[[0.05691644 0.6958826  0.1006666  0.14653434]
 [0.02493463 0.42932504 0.37581542 0.16992484]
 [0.1307202  0.1781543  0.38309455 0.308031  ]
 [0.09698021 0.2151947  0.36341846 0.32440668]], shape=(4, 4), dtype=float32)
tf.Tensor(0.99999994, shape=(), dtype=float32)
tf.Tensor(0.99999994, shape=(), dtype=float32)
tf.Tensor(1.0, shape=(), dtype=float32)
tf.Tensor(1.0, shape=(), dtype=float32)

tf.keras.activations.softmax는 벡터의 값 x에 대해 exp(x) / tf.reduce_sum(exp(x)) 값을 계산합니다.

출력 벡터의 각 값은 0~1 사이의 값을 갖고 총합이 1이 됩니다.



예제2

layer = tf.keras.layers.Dense(32, activation=tf.keras.activations.softmax)

tf.keras.activations.softmax를 신경망 모델의 활성화 함수로 사용하기 위해서는 위와 같이 지정합니다.



이전글/다음글