如何在Keras中声明多个输入LSTM模型?

时间:2017-03-09 01:05:43

标签: python concatenation keras concat lstm

我有一个声明LSTM的Keras代码。但是我注意到最新版本中已经删除了Container类。 https://keras.io/layers/containers/

如何以最新格式声明LSTM的多个输入?我想连接LSTM输入的所有输入。

虽然我注意到了类似的帖子,但我想要做的是声明模型。 How to work with multiple inputs for LSTM in Keras?

  • keras 1.2.2
  • Python 3.5.2(Anaconda 4.1.1,64bit)

```

g = Graph()
g.add_input(
    name='i1',
    input_shape=(None, i1_size)
)
g.add_input(
    name='i2',
    input_shape=(None, i2_size)
)
g.add_node(
    LSTM(
        n_hidden,
        return_sequences=True,
        activation='tanh'
    ),
    name='h1',
    inputs=[
        'i1',
        'i2'
    ]
)

```

哦,我可以将input_shape设置为(i1_size + i2_size),如下所示吗?

model = Sequential()
model.add(LSTM(n_hidden, input_shape=(None, i1_size+i2_size), activation='tanh', return_sequences=True))

1 个答案:

答案 0 :(得分:2)

你问:

  

哦,我可以将input_shape设置为(i1_size + i2_size),如下所示吗?

model = Sequential()
model.add(LSTM(n_hidden, input_shape=(None, i1_size+i2_size), activation='tanh', return_sequences=True))

是的,杰夫。请记住,你的无(无,i1_size + i2_size)是RNN时间步数/ input_length的数量,当你可以跳过定义它时有一些警告。有关详细信息,请参阅https://keras.io/layers/recurrent/input_length说明。

仅供参考input_shape=(None, i1_size+i2_size)也可以写为input_dim=i1_size+i2_size(假设您不包含input_length)。