我目前正在研究使用 GRU 的编码器-解码器模型。它需要 2 个输入,编码器输入和解码器输入。解码器只有一个输出。模型是:
encoder=tf.keras.layers.GRU(10,return_state=True)
_,state=encoder(encoder_input)
decoder_input=tf.keras.layers.Input(shape=(None,10))
decoder=tf.keras.layers.GRU(10,return_sequences=True)
decoder_output=decoder(decoder_input,initial_state=state)
model=tf.keras.models.Model(inputs=[encoder_input,decoder_input],outputs=decoder_output)
model.compile(optimizer='Adam',loss='MeanSquaredError',metrics=['Accuracy'])
当我尝试使用以下伪代码拟合模型时:model.fit(x=[encoder_data,decoder_data],y=decoder_truth)
、encoder_data
、decoder_data
和 decoder_truth
都是列表的嵌套列表并且形状为 {{1 }},并且(None,None,10)
和decoder_data
具有相同的形状
代码引发:decoder_truth
答案 0 :(得分:0)
Decoder_data 和decoder_truth 的长度应该相同,因为GRU 为每个输入提供一个输出。此外,每批次的时间步数应保持不变。