Keras-использование функции активации с параметром

Как можно использовать leaky ReLUs в новейшей версии keras? Функция relu () принимает необязательный параметр "alpha", который отвечает за отрицательный наклон, но я не могу понять, как передать THS paramtere при построении слоя.

эта строка, как я пытался сделать это,

model.add(Activation(relu(alpha=0.1))

но тогда я получаю ошибку

TypeError: relu() missing 1 required positional argument: 'x'

Как я могу использовать протекающий ReLU или любую другую функцию активации с некоторым параметром?

2 ответов


relu является функцией, а не классом, и он принимает вход в функцию активации в качестве параметра x. Слой активации принимает функцию в качестве аргумента, поэтому вы можете инициализировать ее с помощью лямбда-функции через input x например:

model.add(Activation(lambda x: relu(x, alpha=0.1)))

Ну, из этого источника (keras doc), и этот вопрос на GitHub, вы используете линейную активацию, а затем помещаете дырявый relu в качестве другого слоя сразу после.

from keras.layers.advanced_activations import LeakyReLU

model.add(Dense(512, 512, activation='linear')) # Add any layer, with the default of an identity/linear squashing function (no squashing)
model.add(LeakyReLU(alpha=.001))   # add an advanced activation

это поможет?