我正在使用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
参考: 文档