Artikelverzeichnis
Lambda
tf.keras.layers.Lambda(
function, output_shape=None, mask=None, arguments=None, **kwargs
)
Beschreibung
Umschließen Sie jeden Ausdruck als Layer-Objekt. Der Lambda-Layer ist vorhanden, sodass beim Erstellen von sequentiellen und funktionalen API-Modellen jede TensorFlow-Funktion verwendet werden kann. Obwohl es möglich ist, Variablen in der Lambda-Schicht zu verwenden, wird von dieser Vorgehensweise abgeraten, da dies leicht zu Fehlern
führen kann, die von: Schicht, Modul übernommen werden
Parameter
Die
ausgewertete Funktion verwendet
den Eingangstensor als ersten Parameter
Die
erwartete Ausgabeform der Funktion output_shape kann abgeleitet werden, wenn dies nicht explizit angegeben wird. Kann ein Tupel oder eine Funktion sein.
Wenn es sich um ein Tupel handelt, geben Sie nur die erste Dimension vorwärts an.
Angenommen, die Beispieldimension entspricht der Eingabe: output_shape = (input_shape [0],) + output_shape,
oder die Eingabe lautet None, und die Beispieldimension lautet ebenfalls None: output_shape = (None,) +
Wenn output_shape eine Funktion ist, geben Sie die gesamte Form als Funktion der Eingabeform an: output_shape = f (input_shape)
mask
None
oder ein aufrufbares Objekt mit derselben Signatur wie die Layermethode compute_mask
oder ein Tensor, der als Ausgabemaske zurückgegeben wird
Optional Wörterbuch der Keyword - Argumente , um an die Funktion übergeben werden
Form eingeben
Wenn Sie diese Ebene als erste Ebene des Modells verwenden, verwenden Sie den Schlüsselwortparameter input_shape
Ausgabeform
Wird durch den Parameter output_shape angegeben
Offizieller Fall
# add a x -> x^2 layer
model.add(Lambda(lambda x: x ** 2))
# add a layer that returns the concatenation of the positive part of the input and the opposite of the negative part
def antirectifier(x):
x -= K.mean(x, axis=1, keepdims=True)
x = K.l2_normalize(x, axis=1)
pos = K.relu(x)
neg = K.relu(-x)
return K.concatenate([pos, neg], axis=1)
model.add(Lambda(antirectifier))