ПочатиПочніть безкоштовно

Краща класифікація тональності

У цій вправі ви повертаєтеся до задачі класифікації тональності, яку розглядали в розділі 1.

Ви додасте моделі більше складності та підвищите її точність. Ви використаєте шар Embedding, щоб навчити вектори слів на тренувальній вибірці, і два шари LSTM, щоб відстежувати довші тексти. Також ви додасте додатковий шар Dense перед виходом.

Це вже не проста модель, і навчання може тривати певний час. Тому доступна попередньо навчена модель: завантажте її ваги методом .load_weights() класу keras.models.Sequential. Модель була навчена протягом 10 епох, а її ваги збережені у файлі model_weights.h5.

У середовищі вже завантажені такі модулі: Sequential, Embedding, LSTM, Dropout, Dense.

Ця вправа є частиною курсу

Recurrent Neural Networks (RNNs) для моделювання мови з Keras

Переглянути курс

Інструкції до вправи

  • Додайте шар Embedding як перший шар моделі.
  • Додайте другий шар LSTM з 64 одиницями, який повертає послідовності.
  • Додайте додатковий шар Dense з 16 одиницями.
  • Оцініть модель, щоб вивести точність на тренувальній вибірці.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# Build and compile the model
model = Sequential()
model.add(____(vocabulary_size, wordvec_dim, trainable=True, input_length=max_text_len))
model.add(____(64, return_sequences=____, dropout=0.2, recurrent_dropout=0.15))
model.add(LSTM(64, return_sequences=False, dropout=0.2, recurrent_dropout=0.15))
model.add(____(16))
model.add(Dropout(rate=0.25))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])

# Load pre-trained weights
model.load_weights('model_weights.h5')

# Print the obtained loss and accuracy
print("Loss: {0}\nAccuracy: {1}".format(*model.____(X_test, y_test, verbose=0)))
Редагувати та запускати код