tf.keras.layers.Lambda

介绍

将 lambda表达式 或 函数 包装为Layer对象

Lambda层最适合 简单操作 或 快速实验。对于更高级的操作,通过定义 tf.keras.layers.Layer 的子类实现

语法

__init__(
    function,
    output_shape=None,
    mask=None,
    arguments=None,
    **kwargs
)
参数:
  • function:lambda表达式 或 函数,将输入的tensor作为第一个参数
  • output_shape:输出形状
  • arguments:可选,dict类型,用于向 function 传递参数

例子

官方例子

def linear_transform(x):
    v1 = tf.Variable(1., name='multiplier')
    v2 = tf.Variable(0., name='bias')
    return x*v1 + v2

model.add(linear_layer)
model.add(keras.layers.Dense(10, activation='relu'))

linear_layer = Lambda(linear_transform)
model.add(linear_layer)

lambda 表达式

model.add(keras.layers.Lambda(lambda x: x ** 2))

向function传递参数

x2 = Lambda(slice,output_shape=(4,1),arguments={'index':1})(a)

改变形状

def reshapes(embed1):
    embed = tf.reshape(embed1, [-1, 256, 32, 1])
    return embed

embed = keras.layers.Lambda(reshapes)(embed1)

感谢:
https://www.cnblogs.com/jins-note/p/9734771.html
https://www.jianshu.com/p/6f8c86ac1fef


原文出处:/show_1EF5EC4xmSuO.html