tf.keras.activations.selu
| Просмотреть исходный код на GitHub |
Функция активации SELU (масштабированная экспоненциальная линейная единица).
tf.keras.activations.selu(
x
)
Функция активации SELU (масштабированная экспоненциальная линейная единица) определяется как:
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 | Тензор или переменная для вычисления функции активации. |
| Возвращаемое значение | |
|---|---|
Активированная функция: scale * elu(x, alpha). |
Примечания:
- Используется совместно с инициализатором
tf.keras.initializers.LecunNormal. - Используется совместно с вариантом дропаута
tf.keras.layers.AlphaDropout(а не с обычным дропаутом).
Ссылки:
© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.9/api_docs/python/tf/keras/activations/selu