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
Pokyny k cvičení
- Přidej vrstvu
Embeddingjako první vrstvu modelu. - Přidej druhou vrstvu
LSTMs 64 jednotkami, která bude vracet (returning) sekvence. - Přidej další vrstvu
Denses 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)))