У меня хранится тензор в a
, как показано ниже:
<tf.Tensor: shape=(5, 1), dtype=float32, numpy=
array([[0.1 ],
[0.2 ],
[0.4 ],
[0.15],
[0.15]], dtype=float32)>
, когда я применяю к нему функцию softmax,
a_tf = tf.nn.softmax(a)
Я получаю тензор, как показано ниже
<tf.Tensor: shape=(5, 1), dtype=float32, numpy=
array([[1.],
[1.],
[1.],
[1.],
[1.]], dtype=float32)>
хотя я бы ожидал, что нормализованные значения от 0 до 1 дают в сумме 1.
Действительно, когда я использую код определения softmax
a_tf = out_put = (tf.exp(a)) / (tf.reduce_sum(tf.exp(a)))
I получить тензор, как ожидалось:
<tf.Tensor: shape=(5, 1), dtype=float32, numpy=
array([[0.1799347 ],
[0.19885859],
[0.24288644],
[0.18916014],
[0.18916014]], dtype=float32)>
Кто-нибудь может объяснить, почему первый фрагмент кода не работает должным образом?