#python #machine-learning #keras #nlp #language-model
#python #машинное обучение #keras #нлп #языковая модель
Вопрос:
Я пытаюсь обучить языковую модель, которая на основе ввода из 2 слов пытается предсказать вывод из 1 слова. Это определение модели (все слои импортируются из keras.layers
):
model = Sequential()
model.add(Embedding(vocab_size, 2, input_length=seq_length))
model.add(LSTM(100, return_sequences=True))
model.add(LSTM(100))
model.add(Dense(100, activation='relu'))
model.add(Dense(vocab_size, activation='softmax'))
print(model.summary())
Проблема в том, что мой набор данных содержит 87 миллионов строк данных из 3 слов (2 для ввода, 1 для вывода), и он не помещается в мою память. Я слышал, что keras.preprocessing.text.Tokenizer
это создает токены на основе их частоты в тексте. Я обучаю свой токенизатор следующим образом:
tokenizer = Tokenizer(oov_token=1)
tokenizer.fit_on_texts(lines)
sequences = tokenizer.texts_to_sequences(lines)
Как я должен подогнать свой токенизатор ко всем текстам, если они не помещаются в память?