Budowanie generatora i dyskryminatora
W PyBooks masz za zadanie pracować nad automatycznym generatorem tekstu, który pomoże pisarzom przezwyciężyć twórczą blokadę. Korzystając z GAN-ów (Generative Adversarial Networks – generatywnych sieci antagonistycznych), możesz zbudować system, w którym jedna sieć – generator – tworzy nowy tekst, a druga – dyskryminator – ocenia jego autentyczność. Aby to osiągnąć, musisz zainicjalizować obie sieci. Następnie będą one trenowane przeciwko sobie, żeby generować nowy, wiarygodny tekst.
Następujące biblioteki zostały już zaimportowane: torch, torch.nn jako nn.
To ćwiczenie jest częścią kursu
Uczenie głębokie dla tekstu z PyTorch
Instrukcje do ćwiczenia
- Zdefiniuj klasę
Generatorz warstwą liniową dla danych sekwencyjnych oraz funkcją aktywacji sigmoid. - W metodzie
forward()klasyGeneratorprzepuść dane wejściowe przez zdefiniowany model. - Zdefiniuj klasę
Discriminatorz tymi samymi warstwami i funkcją aktywacji, zwracając uwagę na poprawne zdefiniowanie wymiarów.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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)