Kom igångKom igång gratis

Förbättrad sentimentklassificering

I den här övningen återvänder du till sentimentklassificeringsproblemet från kapitel 1.

Du ska göra modellen mer komplex och förbättra dess noggrannhet. Du kommer att använda ett Embedding-lager för att träna ordvektorer på träningsdata, samt två LSTM-lager för att hantera längre texter. Dessutom lägger du till ett extra Dense-lager före utdatalagret.

Detta är inte längre en enkel modell och träningen kan ta en stund. Av den anledningen finns en förtränad modell tillgänglig – du laddar in dess vikter med metoden .load_weights() från klassen keras.models.Sequential. Modellen tränades i 10 epoker och vikterna finns i filen model_weights.h5.

Följande moduler är inlästa i miljön: Sequential, Embedding, LSTM, Dropout, Dense.

Den här övningen är en del av kursen

Återkommande neurala nätverk (RNN) för språkmodellering med Keras

Visa kurs

Övningsinstruktioner

  • Lägg till ett Embedding-lager som modellens första lager.
  • Lägg till ett andra LSTM-lager med 64 enheter som returning sekvenserna.
  • Lägg till ett extra Dense-lager med 16 enheter.
  • Utvärdera modellen för att skriva ut noggrannheten på träningsdatan.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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)))
Redigera och kör kod