始める無料で始める

トランスフォーマーモデルの作成

PyBooks で取り組んでいるレコメンデーションエンジンは、ユーザーレビューの感情をより精緻に理解する必要があります。最先端のアーキテクチャであるトランスフォーマーを使えば、それが実現できると考えています。まずはレビューの感情をエンコードできるトランスフォーマーモデルを構築して、プロジェクトを始めましょう。

次のパッケージはすでにインポートされています:torchnnoptim

入力データには「I love this product」「This is terrible」「Could be better」などの文が含まれ、 それぞれに 1, 0, 0, ... のような二値の感情ラベルが対応します。

入力データは分割され、次の変数に埋め込みへ変換されています: train_sentencestrain_labelstest_sentencestest_labelstoken_embeddings

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

PyTorch で学ぶテキストの Deep Learning

コースを見る

演習の手順

  • トランスフォーマーエンコーダーを初期化します。
  • 感情クラス数に基づいて全結合層を定義します。
  • forward メソッドで、入力をトランスフォーマーエンコーダーに通し、その後に線形層へ渡します。

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

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

class TransformerEncoder(nn.Module):
    def __init__(self, embed_size, heads, num_layers, dropout):
        super(TransformerEncoder, self).__init__()
        # Initialize the encoder 
        self.encoder = nn.____(
            nn.____(d_model=embed_size, nhead=heads),
            num_layers=num_layers)
        # Define the fully connected layer
        self.fc = nn.Linear(embed_size, ____)

    def forward(self, x):
        # Pass the input through the transformer encoder 
        x = self.____(x)
        x = x.mean(dim=1) 
        return self.fc(x)

model = TransformerEncoder(embed_size=512, heads=8, num_layers=3, dropout=0.5)
optimizer = optim.Adam(model.parameters(), lr=1e-3)
criterion = nn.CrossEntropyLoss()
コードを編集して実行