如何从头开始在Keras中实施泄漏ReLU?

如何从头开始在Keras中实施泄漏ReLU?,keras,cnn,activation,activation-function,relu,Keras,Cnn,Activation,Activation Function,Relu,如何从头开始实现Leaky ReLU并将其用作Keras中的自定义函数,我有一个粗略的片段,但不确定我离正确的定义有多近。我的问题分为两部分: 1-我的实现是否正确 2-如果不是,我做错了什么 我使用的实现: from keras import backend as K from keras.layers import Conv3D def leaky_relu(x): alpha = 0.1 return K.maximum(alpha*x, x) x = Conv3D(64

如何从头开始实现Leaky ReLU并将其用作Keras中的自定义函数,我有一个粗略的片段,但不确定我离正确的定义有多近。我的问题分为两部分:

1-我的实现是否正确

2-如果不是,我做错了什么

我使用的实现:

from keras import backend as K 
from keras.layers import Conv3D

def leaky_relu(x):
   alpha = 0.1
   return K.maximum(alpha*x, x)
x = Conv3D(64, kernel_size=(3, 3, 3), activation=leaky_relu, padding='same', name='3D_conv')(x)
和用法:

from keras import backend as K 
from keras.layers import Conv3D

def leaky_relu(x):
   alpha = 0.1
   return K.maximum(alpha*x, x)
x = Conv3D(64, kernel_size=(3, 3, 3), activation=leaky_relu, padding='same', name='3D_conv')(x)

任何帮助都将不胜感激。

是的,这是正确的。我对该函数做了一点修改,使其更易于重用:

def LeakyReLU(alpha = 1):
    return lambda x : tf.keras.backend.maximum(alpha * x, x)
通过这种方式,您可以使用不同的alpha值调用激活:

x = Conv3D(64, kernel_size=(3, 3, 3), activation=LeakyReLU(0.1), padding='same', name='3D_conv')(x)