tf.keras.activations.selu
| Просмотреть исходный код на GitHub |
Функция активации SELU (Scaled Exponential Linear Unit).
tf.keras.activations.selu(
x
)
Функция активации SELU (Scaled Exponential Linear Unit) определяется как:
if x > 0: return scale * xif x < 0: return scale * alpha * (exp(x) - 1)
где alpha и scale являются предварительно определёнными константами (alpha=1.67326324 и scale=1.05070098).
В основном, функция активации SELU умножает scale (> 1) на результат функции tf.keras.activations.elu для обеспечения наклона, большего, чем один, для положительных входных данных.
Значения alpha и scale выбраны так, чтобы среднее значение и дисперсия входов сохранялись между двумя последовательными слоями при правильной инициализации весов (см. инициализатор tf.keras.initializers.LecunNormal) и достаточном количестве входных единиц (см. статью в источнике для получения более подробной информации).
Пример использования:
num_classes = 10 # 10-class problem
model = tf.keras.Sequential()
model.add(tf.keras.layers.Dense(64, kernel_initializer='lecun_normal',
activation='selu'))
model.add(tf.keras.layers.Dense(32, kernel_initializer='lecun_normal',
activation='selu'))
model.add(tf.keras.layers.Dense(16, kernel_initializer='lecun_normal',
activation='selu'))
model.add(tf.keras.layers.Dense(num_classes, activation='softmax'))
| Аргументы | |
|---|---|
x | Тензор или переменная для вычисления функции активации. |
| Возвращаемое значение | |
|---|---|
Активация функции scaled exponential unit: scale * elu(x, alpha). |
Примечания:
- Используется совместно с инициализатором
tf.keras.initializers.LecunNormal. - Используется совместно с вариантом дропаута
tf.keras.layers.AlphaDropout(не обычным дропаутом).
Ссылки:
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.4/api_docs/python/tf/keras/activations/selu