我是Keras RNN结构中语言模型实现的新手.我有一个具有以下统计数据的离散单词数据集(不是来自单个段落),
现在,我想构建一个接受角色并预测单词中下一个角色的模型.我填写了所有单词,以便它们具有相同的长度.所以我的输入是Word_input,形状为1953 x 9,目标是1953 x 9 x 33.我也想使用嵌入层.所以我的网络架构是,
self.wordmodel=Sequential()
self.wordmodel.add(Embedding(33,embedding_size,input_length=9))
self.wordmodel.add(LSTM(128, return_sequences=True))
self.wordmodel.add(TimeDistributed(Dense(33)))
self.wordmodel.compile(loss='mse',optimizer='rmsprop',metrics=['accuracy'])
Run Code Online (Sandbox Code Playgroud)
作为示例,带有填充的单词"CAT"表示
输入网络 - START CAT END****(9个字符)
目标相同--- CAT END*****(9个字符)
因此,对于TimeDistributed
输出,我正在测量网络预测和目标的差异.我还将其设置batch_size
为1.因此,在读取每个样本字后,网络将重置其状态.
我的问题是我在概念上做得对吗?每当我进行训练时,准确度都会降低56%左右.
请赐教.谢谢.