问题描述
如何从头开始实现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)
任何帮助将不胜感激。
解决方法
是的,这是正确的。我对该函数做了一些修改,以使其更可重用:
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)