Слой Softmax
Слой Softmax применяет функцию softmax к входным данным.
Функция softmax преобразует вектор чисел в вероятностное
распределение: каждое значение становится в диапазоне от
0 до 1, а сумма всех значений равна 1.
Первым параметром слой принимает ось, по которой применяется
функция. Вторым параметром можно передать имя слоя.
Синтаксис
tf.keras.layers.Softmax(axis=-1, **kwargs)
Пример
Давайте создадим слой Softmax и применим его к тензору:
import tensorflow as tf
layer = tf.keras.layers.Softmax()
t = tf.constant([1.0, 2.0, 3.0])
res = layer(t)
print(res)
Результат выполнения кода:
tf.Tensor([0.09003057 0.24472848 0.66524094], shape=(3,), dtype=float32)
Пример
Давайте применим слой Softmax к двумерному тензору
по последней оси:
import tensorflow as tf
layer = tf.keras.layers.Softmax(axis=-1)
t = tf.constant([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]])
res = layer(t)
print(res)
Результат выполнения кода:
tf.Tensor(
[[0.09003057 0.24472848 0.66524094]
[0.09003057 0.24472848 0.66524094]], shape=(2, 3), dtype=float32)
Пример
Давайте применим слой Softmax по первой оси:
<+python+>
import tensorflow as tf
layer = tf.keras.layers.Softmax(axis=0)
t = tf.constant([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]])
res = layer(t)
print(res)
<-python+>
Результат выполнения кода:
tf.Tensor(
[[0.04742587 0.04742587 0.04742587]
[0.95257413 0.95257413 0.95257413]], shape=(2, 3), dtype=float32)
Пример
Давайте используем слой Softmax в модели
Sequential:
import tensorflow as tf
model = tf.keras.Sequential([
tf.keras.layers.Dense(3),
tf.keras.layers.Softmax()
])
t = tf.constant([[1.0, 2.0, 3.0]])
res = model(t)
print(res)
Результат выполнения кода:
tf.Tensor([[0.09003057 0.24472848 0.66524094]], shape=(1, 3), dtype=float32)
Смотрите также
-
слой
Dense,
который создает полносвязный слой -
слой
Activation,
который применяет функцию активации -
слой
ReLU,
который применяет функцию активации ReLU -
слой
Dropout,
который применяет dropout к входным данным