Daha iyi duygu sınıflandırması
Bu egzersizde, 1. Bölümde gördüğün duygu sınıflandırması problemine geri dönüyorsun.
Modele daha fazla karmaşıklık ekleyip doğruluğunu artıracaksın. Eğitim kümesinde kelime vektörlerini eğitmek için bir Embedding katmanı ve daha uzun metinleri takip etmek için iki LSTM katmanı kullanacaksın. Ayrıca, çıktıdan önce fazladan bir Dense katmanı ekleyeceksin.
Bu artık basit bir model değil ve eğitim biraz zaman alabilir. Bu nedenle, keras.models.Sequential sınıfının .load_weights() yöntemiyle ağırlıkları yüklenebilen, önceden eğitilmiş bir model hazırlandı. Model 10 epoch ile eğitildi ve ağırlıkları model_weights.h5 dosyasında mevcut.
Ortamda şu modüller yüklüdür: Sequential, Embedding, LSTM, Dropout, Dense.
Bu egzersiz
Keras ile Dil Modellemesi için Yinelenen Sinir Ağları (RNN)
kursunun bir parçasıdırEgzersiz talimatları
- Modelin ilk katmanı olarak bir
Embeddingkatmanı ekle. - Dizileri döndüren, 64 birimli ikinci bir
LSTMkatmanı ekle. - 16 birimli fazladan bir
Densekatmanı ekle. - Eğitim kümesi üzerinde doğruluğu yazdırmak için modeli değerlendir.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
# 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)))