Класс ThresholdedReLU
Класс ThresholdedReLU создает слой нейронной сети,
который применяет функцию активации с порогом.
В отличие от обычного ReLU, который обнуляет все
отрицательные значения, данный слой обнуляет значения
меньшие заданного порога theta.
Первым параметром передается значение порога,
вторым - дополнительные параметры слоя.
Синтаксис
tf.keras.layers.ThresholdedReLU(theta=1.0, **kwargs)
Пример
Давайте создадим слой ThresholdedReLU
с порогом по умолчанию и применим его к тензору:
import tensorflow as tf
layer = tf.keras.layers.ThresholdedReLU()
t = tf.constant([-2.0, -1.0, 0.0, 1.0, 2.0, 3.0])
res = layer(t)
print(res)
Результат выполнения кода:
tf.Tensor([-0. -0. 0. 1. 2. 3.], shape=(6,), dtype=float32)
Пример
Давайте зададим порог равным 2.0 и применим
слой к тензору:
import tensorflow as tf
layer = tf.keras.layers.ThresholdedReLU(theta=2.0)
t = tf.constant([-2.0, -1.0, 0.0, 1.0, 2.0, 3.0])
res = layer(t)
print(res)
Результат выполнения кода:
tf.Tensor([-0. -0. 0. 0. 2. 3.], shape=(6,), dtype=float32)
Пример
Давайте применим слой ThresholdedReLU
к двумерному тензору:
import tensorflow as tf
layer = tf.keras.layers.ThresholdedReLU(theta=0.5)
t = tf.constant([[1.0, -2.0, 3.0], [4.0, -5.0, 6.0]])
res = layer(t)
print(res)
Результат выполнения кода:
tf.Tensor(
[[1. 0. 3.]
[4. 0. 6.]], shape=(2, 3), dtype=float32)
Пример
Давайте встроим слой ThresholdedReLU
в последовательную модель Keras:
import tensorflow as tf
model = tf.keras.Sequential([
tf.keras.layers.Dense(4, input_shape=(3,)),
tf.keras.layers.ThresholdedReLU(theta=0.1)
])
t = tf.constant([[1.0, -2.0, 3.0]])
res = model(t)
print(res)
Результат выполнения кода:
tf.Tensor(
[[0. 0. 0.35955963 0. ]], shape=(1, 4), dtype=float32)