【问题标题】:Splitting an LSTM output using Lambda Functions in Keras在 Keras 中使用 Lambda 函数拆分 LSTM 输出
【发布时间】:2017-12-08 10:42:10
【问题描述】:

我正在使用带有 tensorflow 后端的 Keras。我在 Keras 中使用功能层。我想要实现的是我在某个层具有以下架构。

(20,200) 的张量----> LSTM----> 分成两个大小为 (20,100) 的张量,每个

然后将这两个张量用作另一个网络的两个分支。 (我们可以认为这与 Merge 操作相反)

我了解到,目前实现这一目标的唯一方法是使用 Lambda 层,因为 Keras 中没有“拆分”功能。

但是查看 Lambda 函数的文档,似乎 output_shape 功能仅在我们使用 Keras 时才相关。

任何人都可以就如何实现这一目标提供任何建议吗?这是我想要实现的粗略伪代码。

#Other code before this 
lstm_1st_layer = LSTM(nos_hidden_neurons, return_sequences=True)(lstm_0th_layer)
#this layer outputs a tensor of size(20,200)
#Split it into two tensors of size (20,100) each (call them left and right)
left_lstm = LSTM(200, return_sequences=True)(left)
right_lstm = LSTM(200, return_sequences=True)(right)
#Other code after this 

【问题讨论】:

    标签: python tensorflow deep-learning keras keras-layer


    【解决方案1】:

    在你的位置,我会简单地使用两个具有一半单元数的 LSTM 层。

    然后你准备好两个输出:

    left = LSTM(half_nos_hidden_neurons,.....)(lstm_0th_layer)   
    right = LSTM(half_nos_hidden_neurons,.....)(lstm_0th_layer)
    

    效果是一样的。

    【讨论】:

      猜你喜欢
      • 2021-05-02
      • 2017-04-18
      • 2019-01-04
      • 1970-01-01
      • 2018-09-14
      • 1970-01-01
      • 1970-01-01
      • 2019-12-03
      • 2018-06-30
      相关资源
      最近更新 更多