我如何在lstm中同时使用两个序列

时间:2019-07-30 03:50:16

标签: keras sequence lstm

我想训练一个lstm监督学习模型。我有两个有用的序列,一个是动作,另一个是动作之间的间隔时间。我想同时使用它们。

我的代码在下面,它可以运行,但是我认为这没有道理。 in_action和in_time是两个序列,长度为64。我将每个元素嵌入到128d中。 然后我将它们连接起来并放入LSTM中,

in_action = Input(batch_shape=(None,64), dtype='int32', name='in_action')
in_time = Input(batch_shape=(None,64), dtype='int32', name='in_time')
embedded_sequence_act = Embedding(501, 128)(in_action)
embedded_sequence_time = Embedding(501, 128)(in_time)
concate_embedding = Concatenate(axis=-1)([embedded_sequence_act, embedded_sequence_time])

n_features=2
model = LSTM(128, return_sequences=True, input_shape=(64, n_features))(concate_embedding)
model = LSTM(32, return_sequences=True)(model)
model = LSTM(16)(model)

output = Dense(1, activation="sigmoid", name='prediction')(model)
model = Model(inputs=[in_action, in_time], outputs=output)
model.compile(
             loss='binary_crossentropy',
              optimizer='adam',
                metrics=['acc'])

并且我将n_features更改为任意数字(例如3,7,20),它可以运行...我不明白为什么 尽管它可以运行,但是请帮助我弄清楚如何显示我的代码,因此代码很有意义

0 个答案:

没有答案