如何从零开始在Keras中实现Leaky 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,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)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...