数据 x,y,每个数据都是[1*(30+k)*61],和[1*k*63]维度的,部分数据的shape如下。
其中k是变化的,如何更改下面的代码,使得模型可以训练?
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
相似问题