Lambda 类keras.layers.Lambda(function, output_shape=None, mask=None, arguments=None, **kwargs)
将任意表达式包装成 Layer 对象。
Lambda 层用于在构建 Sequential 和 Functional API 模型时,可以使用任意表达式作为 Layer。Lambda 层最适合简单的操作或快速实验。对于更高级的用例,请优先编写新的 Layer 子类。
警告:Lambda 层存在(反)序列化限制!
与使用 Lambda 层相比,选择继承 Layer 的主要原因是为了模型的保存和检查。Lambda 层通过序列化 Python 字节码来保存,这在本质上是不可移植且可能不安全的。它们只能在保存它们的同一环境中加载。通过覆盖其 get_config() 方法,子类化的层可以以更易于移植的方式保存。依赖于子类化层的模型通常也更容易可视化和理解。
示例
# add a x -> x^2 layer
model.add(Lambda(lambda x: x ** 2))
参数
output_shape = (input_shape[0], ) + output_shape;或者,如果输入为 None,则样本维度也为 None:output_shape = (None, ) + output_shape。如果是一个函数,它将整个形状指定为输入形状的函数:output_shape = f(input_shape)。compute_mask 层方法具有相同签名的可调用对象,或一个将作为输出掩码返回的张量,无论输入是什么。