Machine learning 编码器为每个输入返回相同的状态,如seq2seq

Machine learning 编码器为每个输入返回相同的状态,如seq2seq,machine-learning,keras,chatbot,seq2seq,encoder-decoder,Machine Learning,Keras,Chatbot,Seq2seq,Encoder Decoder,我在Keras中使用编码器-解码器seq2seq架构, 我正在传递一个热门的形状数组(num_样本、max_句子长度、max_单词)进行训练,并使用教师强制 编码器 潜在尺寸=256 编码器输入=输入(形状=(无,最多字)) 编码器=LSTM(潜在尺寸,返回状态=真) 编码器输出,状态h,状态c=编码器(编码器输入) 编码器状态=[状态h,状态c] #译码器 解码器输入=输入(形状=(无,最多字)) 解码器\u lstm=lstm(潜在\u dim,返回\u状态=True,返回\u序列= (对)

我在Keras中使用编码器-解码器seq2seq架构, 我正在传递一个热门的形状数组(num_样本、max_句子长度、max_单词)进行训练,并使用教师强制

编码器 潜在尺寸=256 编码器输入=输入(形状=(无,最多字)) 编码器=LSTM(潜在尺寸,返回状态=真) 编码器输出,状态h,状态c=编码器(编码器输入) 编码器状态=[状态h,状态c] #译码器 解码器输入=输入(形状=(无,最多字)) 解码器\u lstm=lstm(潜在\u dim,返回\u状态=True,返回\u序列= (对) 解码器输出,解码器lstm(解码器输入,初始状态= 编码器(美国) 解码器密集=密集(最大字数,激活='softmax') 解码器输出=解码器输出(解码器输出) 对于推理模型:

推理模型 编码器模型=模型(编码器输入、编码器状态) 解码器\状态\输入\ h=输入(形状=(潜在尺寸) 解码器\状态\输入\ c=输入(形状=(潜在尺寸) 解码器\状态\输入=[解码器\状态\输入\ h,解码器\状态\输入\ c] 解码器输出,状态h,状态c=解码器lstm( 解码器输入,初始状态=解码器状态(输入) 解码器状态=[状态h,状态c] 解码器输出=解码器输出(解码器输出) 解码器\模型=模型( [解码器输入]+解码器状态输入, [解码器输出]+解码器状态)
我试着打印出编码器的模型状态,但是对于任何输入,它总是返回相同的状态。任何帮助都将不胜感激

这几乎就是Keras的例子,对吗

你训练过模特吗?您发布的所有内容都与Keras文档中的内容相同,因此我认为这可能不是问题所在

下面是一个有效的示例,它也是基于Keras文档的,看起来与您的非常相似。也许你可以试着浏览一下,看看你有什么不同