ジェネレータとディスクリミネータを作る
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)