Mulai sekarangMulai gratis

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

Lihat Kursus

Instruksi latihan

  • Tambahkan lapisan Embedding sebagai lapisan pertama model.
  • Tambahkan lapisan LSTM kedua dengan 64 unit yang mengembalikan deret keluaran.
  • Tambahkan satu lapisan Dense tambahan 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)))
Edit dan Jalankan Kode