始める無料で始める

Embedding で性能を向上させる

Embedding レイヤーはモデルの精度を高められるでしょうか?同じ IMDB データで確かめてみましょう。

このモデルは、前の simpleRNN セルを使ったモデルと同様に、すでに 10 エポックで学習済みです。モデル同士を比較するために、テストセット (X_test, y_test) が環境に用意されており、以前のモデル simpleRNN_model も利用できます。以前のモデルの精度は変数 acc_SimpleRNN に読み込まれています。

必要なモジュールと関数はすべて環境に読み込まれています:keras.modelsSequential()keras.layersEmbeddingDense、そして keras.layersSimpleRNN

この演習はコースの一部です

Kerasで学ぶ言語モデリングのためのRecurrent Neural Networks (RNNs)

コースを見る

演習の手順

  • モデルに Embedding レイヤーを追加してください。
  • モデルの精度を計算し、変数 acc_embeddings に保存してください。
  • 以前のモデルと新しいモデルの精度を出力してください。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Create the model with embedding
model = Sequential(name="emb_model")
model.add(____(input_dim=max_vocabulary, output_dim=wordvec_dim, input_length=max_len))
model.add(SimpleRNN(units=128))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])

# Load pre-trained weights
model.load_weights('embedding_model_weights.h5')

# Evaluate the models' performance (ignore the loss value)
_, ____ = model.evaluate(X_test, y_test, verbose=0)

# Print the results
print("SimpleRNN model's accuracy:\t{0}\nEmbeddings model's accuracy:\t{1}".format(acc_simpleRNN, ____))
コードを編集して実行