Klasifikasi sentimen yang lebih baik
Pada latihan ini, Anda kembali ke persoalan klasifikasi sentimen yang dibahas di Bab 1.
Anda akan menambahkan kompleksitas pada model dan meningkatkan akurasinya. Anda akan menggunakan lapisan Embedding untuk melatih vektor kata pada himpunan latih dan dua lapisan LSTM untuk melacak teks yang lebih panjang. Selain itu, Anda akan menambahkan satu lapisan Dense tambahan sebelum keluaran.
Ini bukan lagi model sederhana, dan proses pelatihannya dapat memakan waktu. Oleh karena itu, model pralatih tersedia dengan memuat bobotnya menggunakan metode .load_weights() dari kelas keras.models.Sequential. Model ini dilatih selama 10 epoch dan bobotnya tersedia pada berkas model_weights.h5.
Modul berikut telah dimuat di lingkungan: Sequential, Embedding, LSTM, Dropout, Dense.
Latihan ini merupakan bagian dari kursus
Recurrent Neural Networks (RNN) untuk Pemodelan Bahasa dengan Keras
Instruksi latihan
- Tambahkan lapisan
Embeddingsebagai lapisan pertama model. - Tambahkan lapisan
LSTMkedua dengan 64 unit yangmengembalikanderet keluaran. - Tambahkan satu lapisan
Densetambahan dengan 16 unit. - Evaluasi model untuk mencetak akurasi pada himpunan latih.
Latihan interaktif langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
# 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)))