介绍
将 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