在Keras中培训语言模型时,如何处理较大的人声?

在Keras中培训语言模型时,如何处理较大的人声?,keras,deep-learning,nlp,out-of-memory,language-model,Keras,Deep Learning,Nlp,Out Of Memory,Language Model,我想通过本教程在Keras中培训一个语言模型: 我的输入包括: 行数:4823744 最长线路:20 词汇量:790609 总数:2172328 最大序列长度:11 从这几行可以看出: num_words = 50 tokenizer = Tokenizer(num_words=num_words, lower=True) tokenizer.fit_on_texts([data]) # determine the vocabulary size vocab_size = len(tokeni

我想通过本教程在Keras中培训一个语言模型:

我的输入包括: 行数:4823744 最长线路:20 词汇量:790609 总数:2172328 最大序列长度:11

从这几行可以看出:

num_words = 50
tokenizer = Tokenizer(num_words=num_words, lower=True)
tokenizer.fit_on_texts([data])
# determine the vocabulary size
vocab_size = len(tokenizer.word_index) + 1
我正在使用num_words=50的标记器。 vocab_大小取自标记器,但仍然是更大的大小(790K)

因此,这一行:

y = to_categorical(y, num_classes=vocab_size)
导致内存错误

这是模型定义:

model = Sequential()
model.add(Embedding(vocab_size, 10, input_length=max_length-1))
model.add(LSTM(50))
model.add(Dense(vocab_size, activation='softmax'))
我该怎么处理呢

我确实想要单词级的模型,而不是字符级的。 我想用至少10万个最常用的词

我之前考虑过过滤单词,但这可能会导致语言模型学习错误的序列

我怎样才能解决它


感谢

Fasttext是计算大型词汇表嵌入的更好方法-它不需要每个单词都有字典条目