Python Keras:一个层输出与输入完全相同的东西



我正在使用Keras来构建网络。在此过程中,我需要一层,它接受 LSTM 输入,什么都不做,只是输出与输入完全相同的输出。即,如果 LSTM 的每个输入记录都像 [[A_t1、A_t2、A_t3、A_t4、A_t5、A_t6]],我正在寻找一个层:

model.add(SomeIdentityLayer(x))

SomeIdentityLayer(x( 将[[A_t1, A_t2, A_t3, A_t4, A_t5, A_t6]]作为输入和输出[[A_t1, A_t2, A_t3, A_t4, A_t5, A_t6]]。这样的层/结构在 Keras 中可用吗?谢谢!

对于像身份这样的更简单的操作,您只需使用 Lambda 层,如下所示:

model.add(Lambda(lambda x: x))

这将返回与您的输入完全相同的输出。

实际上,Layer中的默认call()实现是身份,因此您只需使用:

model.add(Layer()) 

您可以使用,

layer = tf.keras.layers.Activation('linear')
x = tf.constant([1.0, -1.0, 1.5])
y = layer(x) # output: same as x

最后更新日期:2023 年 1 月 31 日

tensorflow==2.12.0开始,支持专用层简单地通过输入,

layer = tf.keras.layers.Identity() 
x = tf.constant([1.0, -1.0, 1.5])
y = layer(x) # output: same as x

参考: 文档

最新更新