Tensorflow 使用Keras的分段输入

Tensorflow 使用Keras的分段输入,tensorflow,machine-learning,keras,Tensorflow,Machine Learning,Keras,我试图用Keras来识别英语单词中的常见模式。目前,我只是把整个单词放到神经网络中。这是不好的,因为只有长单词使用结尾的神经元 有没有一种方法可以根据几条数据进行预测 我想做的是 word = "check" scores = [] for segment in binify(word, binsize=4): # we get " che", "chec", "heck", "eck " scores.append(model.predict(segment)) final_

我试图用Keras来识别英语单词中的常见模式。目前,我只是把整个单词放到神经网络中。这是不好的,因为只有长单词使用结尾的神经元

有没有一种方法可以根据几条数据进行预测

我想做的是

word = "check"

scores = []
for segment in binify(word, binsize=4):
    # we get " che", "chec", "heck", "eck "
    scores.append(model.predict(segment))
final_classification = mean(scores)
我希望能够使用上述函数训练神经网络(网络一次需要4个字符)。如何最好地做到这一点?自定义优化器

有没有一种方法可以根据几条数据进行预测

为什么不按照需要的方式简单地预处理数据?i、 e.将其拆分为多个存储桶,并向您的网络提供数据?实际上,正如您在算法中所描述的。我不认为有任何必要,由神经网络执行这一步骤。 如果你想要一个专注于单词部分的神经网络,卷积神经网络是一个不错的选择。但我认为CNN不会帮你完成任务

因为如果我没弄错的话,你是在尝试建立一种自动补全(但是自动补全器会在输入词的两端完成你的输入?),所以输入“che”的标签是“check”,对吗?基本问题是,例如“heck”可以映射到check、checkpoint、heck、check-in。。。。因此,输入和标签之间从来没有明确的区别

我建议使用字符嵌入作为输入,因为它们模拟字符的相似性。作为一种简单的方法,您还可以使用一个热编码字符。 在隐藏层中有一些乐趣-你可以首先使用一个简单的完全连接的密集层,你也可以尝试LSTM。 作为标签,您可以使用word2vec单词嵌入。因此,作为一个输出层,您需要300个神经元(word2vec的维度为300)。因为它不再是一个热编码-你不应该使用交叉熵损失,而是平方损失或类似的东西

Word2vec已经提供了现成的工具,用于将给定向量与类似单词进行比较。这就是你将如何得到你的预测词