如何从零开始在 Keras 中实现 Leaky ReLU?
How implement Leaky ReLU in Keras from scratch?
如何从头开始实现 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)
如何从头开始实现 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)