Začněte nyníZačněte zdarma

Lepší klasifikace sentimentu

V tomto cvičení se vrátíš ke klasifikaci sentimentu, kterou jsi viděl/a v kapitole 1.

Model obohatíš o větší složitost a zlepšíš jeho přesnost. Použiješ vrstvu Embedding pro trénování word vektorů na trénovací sadě a dvě vrstvy LSTM pro sledování delších textů. Navíc přidáš ještě jednu vrstvu Dense před výstup.

Tento model už není jednoduchý a trénování může chvíli trvat. Proto je k dispozici předtrénovaný model – jeho váhy načteš metodou .load_weights() ze třídy keras.models.Sequential. Model byl natrénován na 10 epochách a jeho váhy jsou uloženy v souboru model_weights.h5.

V prostředí jsou načtené tyto moduly: Sequential, Embedding, LSTM, Dropout, Dense.

Toto cvičení je součástí kurzu

Rekurentní neuronové sítě (RNN) pro jazykové modelování s Keras

Zobrazit kurz

Pokyny k cvičení

  • Přidej vrstvu Embedding jako první vrstvu modelu.
  • Přidej druhou vrstvu LSTM s 64 jednotkami, která bude vracet (returning) sekvence.
  • Přidej další vrstvu Dense s 16 jednotkami.
  • Vyhodnoť model a vypiš přesnost na trénovací sadě.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# 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)))
Upravit a spustit kód