РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
459 of 824 menu

Функция activations.elu

Функция activations.elu применяет экспоненциальную линейную активацию (Exponential Linear Unit) к переданному тензору. Первым параметром функция принимает тензор или значение, к которому нужно применить активацию. Вторым параметром можно передать коэффициент наклона alpha для отрицательной части функции. По умолчанию alpha равен 1.0.

Формула функции: для x > 0 результат равен x, а для x <= 0 результат равен alpha * (exp(x) - 1). В отличие от relu, функция elu не обнуляет отрицательные значения, а плавно приближает их к -alpha, что помогает избежать проблемы «мертвых» нейронов.

Синтаксис

tf.keras.activations.elu(x, alpha=1.0)

Пример

Давайте применим функцию elu к тензору с положительными и отрицательными значениями:

import tensorflow as tf t = tf.constant([-3.0, -2.0, -1.0, 0.0, 1.0, 2.0, 3.0]) res = tf.keras.activations.elu(t) print(res)

Результат выполнения кода:

tf.Tensor([-0.95021296 -0.86466473 -0.63212055 0. 1. 2. 3. ], shape=(7,), dtype=float32)

Пример

Давайте изменим коэффициент alpha на 2.0, чтобы увеличить наклон отрицательной части:

import tensorflow as tf t = tf.constant([-3.0, -2.0, -1.0, 0.0, 1.0, 2.0, 3.0]) res = tf.keras.activations.elu(t, alpha=2.0) print(res)

Результат выполнения кода:

tf.Tensor([-1.9004259 -1.7293295 -1.2642412 0. 1. 2. 3. ], shape=(7,), dtype=float32)

Пример

Давайте применим функцию elu к двумерному тензору:

import tensorflow as tf t = tf.constant([[-2.0, -1.0], [1.0, 2.0]]) res = tf.keras.activations.elu(t) print(res)

Результат выполнения кода:

tf.Tensor( [[-0.86466473 -0.63212055] [ 1. 2. ]], shape=(2, 2), dtype=float32)

Пример

Давайте используем функцию elu в качестве активации внутри слоя Dense:

import tensorflow as tf tf.random.set_seed(0) model = tf.keras.Sequential([ tf.keras.layers.Dense(4, activation=tf.keras.activations.elu, input_shape=(3,)) ]) t = tf.constant([[1.0, 2.0, 3.0]]) res = model(t) print(res)

Результат выполнения кода:

tf.Tensor([[-1.1475315 -1.1672854 1.0773582 1.0612087]], shape=(1, 4), dtype=float32)

Смотрите также

  • функцию relu,
    которая обнуляет отрицательные значения
  • функцию selu,
    которая выполняет масштабированную экспоненциальную линейную активацию
  • функцию leaky_relu,
    которая пропускает малую часть отрицательных значений
  • функцию silu,
    которая применяет сигмоидно-линейную активацию
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить