Einführung in die Keras-Implementierung einer neuen Aktivierungsfunktion namens FReLU.
Weitere Informationen zur Implementierung von FReLU + in Pytorch finden Sie im folgenden Artikel. Es wird sehr sorgfältig erklärt. Hinweis: Geburt & Erklärung der neuen Aktivierungsfunktion "FReLU"!
In diesem Artikel geht es um die Implementierung von FReLU in tf.keras. Mit Depthwise Conv2D und Lambda können Sie es schnell implementieren.
y= \max(x,\mathbb{T}(x))
$ \ mathbb {T} (\ cdot) $ ist DepthwiseConv2D.
tensorflow 2.3.0
FReLU.py
from tensorflow.keras.layers import DepthwiseConv2D,BatchNormalization
import tensorflow as tf
from tensorflow.keras.layers import Lambda
from tensorflow.keras import backend as K
#Mathematisches Symbol max()Definition von
def max_unit(args):
inputs , depthconv_output = args
return tf.maximum(inputs, depthconv_output)
def FReLU(inputs, kernel_size = 3):
#T(x)Teil von
x = DepthwiseConv2D(kernel_size, strides=(1, 1), padding='same')(inputs)
x = BatchNormalization()(x)
#Berechnen Sie die Tensorform für Lambda
x_shape = K.int_shape(x)
#max(x, T(x))Teil von
x = Lambda(max_unit, output_shape=(x_shape[1], x_shape[2], x_shape[3]))([inputs, x])
return x
Die Implementierung selbst ist einfach, nicht wahr? Ich werde versuchen, die Layer-Version zu implementieren, wenn ich Zeit habe. Es ist schön, weil der Name erscheint, wenn diese Person zusammenfasst. Wenn Sie Fragen oder Bedenken haben, hinterlassen Sie bitte einen Kommentar.
Recommended Posts