Python Keras:一个层输出与输入完全相同的东西
Posted
技术标签:
【中文标题】Python Keras:一个层输出与输入完全相同的东西【英文标题】:Python Keras: An layer output exactly the same thing as input 【发布时间】:2018-04-28 02:38:01 【问题描述】:我正在使用 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 中有这样的层/结构吗?谢谢!
【问题讨论】:
【参考方案1】:对于像身份这样更简单的操作,您可以使用 Lambda 层,例如:
model.add(Lambda(lambda x: x))
这将返回与您的输入完全相同的输出。
【讨论】:
您需要添加input_shape=your_input_shape
例如model.add(Lambda(lambda x: x, input_shape=x))
如果您希望这是网络中的唯一层
您知道这与使用 tf.identity() 之间的复杂性差异吗?【参考方案2】:
其实Layer
中默认的call()
实现是identity,所以你可以直接使用:
model.add(Layer())
【讨论】:
您知道两种解决方案(Lambda(lambda x: x)
和 Layer()
)在运行时复杂性方面哪个更可取吗?以上是关于Python Keras:一个层输出与输入完全相同的东西的主要内容,如果未能解决你的问题,请参考以下文章
keras 中的输入形状(此损失期望目标具有与输出相同的形状)