Creare un generatore e un discriminatore
A PyBooks, ti è stato affidato il compito di lavorare su un generatore di testo automatico per aiutare gli scrittori a superare il blocco dello scrittore. Usando le GAN, ovvero le Generative Adversarial Networks, pensi di poter creare un sistema in cui una rete, il generatore, crea nuovo testo mentre l’altra rete, il discriminatore, ne valuta l’autenticità. Per farlo, devi inizializzare sia una rete generatore sia una rete discriminatore. Queste reti verranno quindi addestrate una contro l’altra per creare testo nuovo e credibile.
Sono già stati importati per te: torch, torch.nn come nn.
Questo esercizio fa parte del corso
Deep Learning per il testo con PyTorch
Istruzioni dell'esercizio
- Definisci la classe
Generatorcon uno strato lineare per dati sequenziali e una funzione di attivazione sigmoid. - Nel metodo
forward()della classeGenerator, passa l'input attraverso il modello definito. - Definisci una classe
Discriminatorcon gli stessi strati e la stessa funzione di attivazione, facendo attenzione a definire correttamente le dimensioni.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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)