始める無料で始める

ジェネレータとディスクリミネータを作る

PyBooks では、ライターのスランプ解消を助ける自動テキスト生成器の開発を担当します。GAN(Generative Adversarial Networks)を使えば、1つのネットワーク(ジェネレータ)が新しいテキストを生成し、もう1つのネットワーク(ディスクリミネータ)がその真偽を評価する仕組みを作れると考えています。そのために、まずジェネレータとディスクリミネータの両方のネットワークを初期化する必要があります。これらのネットワークは互いに競い合うように学習し、もっともらしい新しいテキストを生成します。

次のモジュールはインポート済みです: torch, torch.nn as nn

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

PyTorch で学ぶテキストの Deep Learning

コースを見る

演習の手順

  • 逐次データ向けの線形レイヤーと sigmoid 活性化関数を使って、Generator クラスを定義します。
  • Generator クラスの forward() メソッドで、定義したモデルに入力を通します。
  • 同じレイヤー構成と活性化関数で Discriminator クラスを定義し、次元の指定に注意します。

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

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

# Define the generator class
class Generator(nn.Module):
    def __init__(self):
        super().__init__()
        self.model = nn.____(nn.____(____), nn.____())
    def forward(self, x):
        return self.____(x)

# Define the discriminator networks
class Discriminator(nn.Module):
    def __init__(self):
        super().__init__()
        self.model = nn.____(nn.____(____), nn.____())
    def forward(self, x):
        return self.model(x)
コードを編集して実行