始める無料で始める

パラメータ数の比較

one-hot 表現は非常にスパースで、単語の表現として適していないことを学びました。Embedding レイヤーを使うと密なベクトル表現が得られますが、学習すべきパラメータ数が多くなるという側面もあります。

この演習では、embeddingsone-hot エンコーディングを用いた2つのモデルのパラメータ数を比較し、違いを確認します。

環境にはすでに model_onehot が読み込まれており、keras からの SequentialDenseGRU も利用できます。最後に、vocabulary_size=80000sentence_len=200 のパラメータも読み込まれています。

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

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

コースを見る

演習の手順

  • keras.layers から Embedding レイヤーをインポートします。
  • Embedding レイヤーでは、入力次元に語彙サイズ+1、入力長に文の長さを指定します。
  • モデルをコンパイルします。
  • Embedding を用いたモデルのサマリーを表示します。

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

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

# Import the embedding layer
from tensorflow.keras.layers import ____

# Create a model with embeddings
model = Sequential(name="emb_model")
model.add(Embedding(input_dim=____, output_dim=wordvec_dim, input_length=____, trainable=True))
model.add(GRU(128))
model.add(Dense(1))
model.____(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])

# Print the summaries of the one-hot model
model_onehot.summary()

# Print the summaries of the model with embeddings
model.____
コードを編集して実行