首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在keras.LSTM完成不定长的三维数据输入?

如何在keras.LSTM完成不定长的三维数据输入?

提问于 2021-09-14 21:07:38
回答 0关注 0查看 276

数据 x,y,每个数据都是[1*(30+k)*61],和[1*k*63]维度的,部分数据的shape如下。

其中k是变化的,如何更改下面的代码,使得模型可以训练?

代码语言:js
复制
class Agent:
    def get_model1(self, hidden_units, k):
        encoder_inputs = Input(shape=(None, 61), name="encode_input")
        enc_outputs, enc_state_h, enc_state_c = LSTM(16, return_sequences=True, return_state=True)(encoder_inputs)
        attn_output, _ = MultiHeadAttention(num_heads=2, key_dim=16)(enc_outputs[:, k:, :], enc_outputs,
                                                                     return_attention_scores=True)
        decoder_out, _, _ = LSTM(63, return_sequences=True, return_state=True)(attn_output)
        model = Model(inputs=[encoder_inputs], outputs=[decoder_out])
        model.summary()
        return model

    def get_model(self, hidden_units, k):
        model = keras.Sequential([
            Input(shape=(None, 61), name="encode_input"),
            tf.keras.layers.Masking(mask_value=[-1.] * 61, input_shape=(None, 61)),
            self.get_model1(hidden_units, k)
        ])
        model.summary()
        return model

回答

和开发者交流更多问题细节吧,去 写回答
相关文章

相似问题

相关问答用户
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档