tf.keras.activations.selu
| Просмотреть исходный код на GitHub |
Функция активации Scaled Exponential Linear Unit (SELU).
tf.keras.activations.selu(
x
)
Функция активации Scaled Exponential Linear Unit (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 | Tensor или переменная для вычисления функции активации. |
| Возвращаемое значение | |
|---|---|
Активированная функция SELU: 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.3/api_docs/python/tf/keras/activations/selu