Функция activations.selu
Функция activations.selu применяет к входным данным
масштабированную экспоненциальную линейную единицу
(Scaled Exponential Linear Unit). Первым параметром
функция принимает тензор или массив значений. Для
положительных значений активация ведет себя как
линейная функция, а для отрицательных - как
экспоненциальная, с масштабированием на константы
alpha и scale. Функция возвращает тензор
той же формы, что и входные данные.
Синтаксис
tf.keras.activations.selu(x)
Пример
Давайте применим SELU-активацию к тензору с положительными и отрицательными значениями:
import tensorflow as tf
t = tf.constant([-2.0, -1.0, 0.0, 1.0, 2.0])
res = tf.keras.activations.selu(t)
print(res)
Результат выполнения кода:
tf.Tensor([-1.7580993 -1.1113307 0. 1.050701 2.101402 ], shape=(5,), dtype=float32)
Пример
Давайте применим SELU-активацию к двумерному тензору:
import tensorflow as tf
t = tf.constant([[1.0, -2.0, 3.0], [4.0, 5.0, -6.0]])
res = tf.keras.activations.selu(t)
print(res)
Результат выполнения кода:
tf.Tensor(
[[ 1.050701 -1.7580993 3.152103 ]
[ 4.202804 5.253505 -3.9262404]], shape=(2, 3), dtype=float32)
Пример
Давайте используем SELU-активацию внутри слоя
Dense:
import tensorflow as tf
tf.random.set_seed(0)
model = tf.keras.Sequential([
tf.keras.layers.Dense(4, input_shape=(3,)),
tf.keras.layers.Activation('selu')
])
t = tf.constant([[1.0, 2.0, 3.0]])
res = model(t)
print(res)
Результат выполнения кода:
tf.Tensor([[ 0.31894577 -1.6135608 -1.6261185 1.4801043 ]], shape=(1, 4), dtype=float32)