Lambda classkeras.layers.Lambda(function, output_shape=None, mask=None, arguments=None, **kwargs)
Wraps arbitrary expressions as a Layer object.
The Lambda layer exists so that arbitrary expressions can be used
as a Layer when constructing Sequential
and Functional API models. Lambda layers are best suited for simple
operations or quick experimentation. For more advanced use cases,
prefer writing new subclasses of Layer.
WARNING: Lambda layers have (de)serialization limitations!
The main reason to subclass Layer instead of using a
Lambda layer is saving and inspecting a model. Lambda layers
are saved by serializing the Python bytecode, which is fundamentally
non-portable and potentially unsafe.
They should only be loaded in the same environment where
they were saved. Subclassed layers can be saved in a more portable way
by overriding their get_config() method. Models that rely on
subclassed Layers are also often easier to visualize and reason about.
Example
# add a x -> x^2 layer
model.add(Lambda(lambda x: x ** 2))
Arguments
output_shape = (input_shape[0], ) + output_shape or,
the input is None and the sample dimension is also None:
output_shape = (None, ) + output_shape.
If a function, it specifies the
entire shape as a function of the input shape:
output_shape = f(input_shape).compute_mask layer method, or a tensor
that will be returned as output mask regardless
of what the input is.