Я пытаюсь создать вложение слова, но когда я подгоняю данные к модели (которая представляет собой регрессионную модель логистики c со слоем внедрения), я получаю следующую ошибку
Ошибка, когда проверка цели: ожидается, что плотность__3 имеет 3 измерения, но получен массив с формой (59568180, 1)
Я не понимаю, почему последний модуль денсора ожидает 3 измерения в выводе, когда я просто хочу предсказать вероятность .
Входной массив X имеет форму (59568180, 1, 2), а выходной Y имеет форму (59568180,)
Вот мой код
def BuildModel(vocab_size, emb_size, window_size):
model = Sequential([
Flatten(input_shape=(1,2)),
Embedding(output_dim=emb_size, input_dim=vocab_size),
Dense(1, input_shape=(2,))])
return model
def TrainModel(X_train, Y_train, vocab_size, emb_size = 300, window_size = 3, epochs = 1, optimizer = 'adam'):
model = BuildModel(vocab_size, emb_size, window_size)
model.compile(optimizer= optimizer,
loss='binary_crossentropy',
metrics=['accuracy'])
model.fit(X_train, Y_train, epochs=epochs)
TrainModel(X_train, Y_train, len(word2index_vocab))