我想训练一个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),它可以运行...我不明白为什么 尽管它可以运行,但是请帮助我弄清楚如何显示我的代码,因此代码很有意义