DCGAN
forkortelse for Deep Convolutional Generative Adversarial Network
En DCGAN er en generativ adversarial netværksarkitektur, der anvender dybe konvolutionelle neurale netværk til både generator og diskriminator.
Kort fortalt
Kort fortalt er DCGAN en type neuralt netværk, der kan generere realistiske billeder ved at lade to konvolutionelle netværk konkurrere mod hinanden.
- Kategori
- arkitektur
- Niveau
- øvet
- Udtale
- diː siː dʒæn
Betydninger
1- 1
En specifik GAN-arkitektur, hvor både generator og diskriminator er dybe konvolutionelle netværk designet med retningslinjer som f.eks. batch-normalisering, undgåelse af full-connected lag og brug af transponeret konvolution i generatoren.
- DCGAN-arkitekturen muliggør stabil træning af GAN'er til billedgenerering ved at følge bestemte designprincipper. — Original paper (2015)
- Forskere brugte en DCGAN til at generere realistiske billeder af soveværelser fra et datasæt.
Hvornår bruges det
DCGAN anvendes typisk til billedgenerering og -manipulation som en baseline-model, f.eks. til at skabe syntetiske billeder eller lære repræsentationer uden supervision.
Kodeeksempel
import torch.nn as nn
class Generator(nn.Module):
def __init__(self, latent_dim):
super().__init__()
self.model = nn.Sequential(
nn.ConvTranspose2d(latent_dim, 512, 4, 1, 0, bias=False),
nn.BatchNorm2d(512),
nn.ReLU(True),
nn.ConvTranspose2d(512, 256, 4, 2, 1, bias=False),
nn.BatchNorm2d(256),
nn.ReLU(True),
nn.ConvTranspose2d(256, 128, 4, 2, 1, bias=False),
nn.BatchNorm2d(128),
nn.ReLU(True),
nn.ConvTranspose2d(128, 3, 4, 2, 1, bias=False),
nn.Tanh()
)
def forward(self, z):
return self.model(z)Eksempel på en DCGAN-generator i PyTorch med latent dimension som input og output af billeder med 3 kanaler.
Oprindelse
DCGAN blev introduceret i 2015 af Alec Radford, Luke Metz og Soumith Chintala i artiklen 'Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks'.