Привет, я следую этому коду вместе с Deep learning with python Book. Я пытаюсь обучить модель с предварительно подготовленными встраиваниями слов в сырой набор данных IMDB. Я получаю эту ошибку, как это исправить.
Я следовал этому процессу
1. Обработка меток необработанных данных IMDB
2. Токенизация текста необработанных данных IMDB
3. Разбор файла словарных вложений GloVe
4. Подготовка матрицы вложения слов GloVe
5. Определение моей модели
from keras.models import Sequential
from keras.layers import Embedding, Flatten, Dense
model = Sequential()
model.add(Embedding(max_words, embedding_dim, input_length=maxlen))
model.add(Flatten())
model.add(Dense(32, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
model.layers[0].set_weights([embedding_matrix])
model.layers[0].trainable = False
model.compile(optimizer='rmsprop',loss='binary_crossentropy',metrics['acc'])
history = model.fit(x_train,y_train,epochs=10,batch_size=32,validation_data(x_val, y_val))
model.save_weights('pre_trained_glove_model.h5')
Когда я запускаю его, я получаю ошибку о последнем плотном слое:
ValueError: Error when checking target: expected dense_12 to have shape (1,) but got array with shape (100,)
Когда я изменяю форму слоя Dehse на 100, это дает мне эту ошибку:
ValueError: Error when checking target: expected dense_13 to have shape (100,) but got array with shape (1,)
Как исправить эту ошибку?
Он отлично работает без предварительно обученного встраивания слов, а также дает мне точность 86%