0Pricing
Learn AI with Python · Leçon

GAN conditionnels et transfert de style

cGAN conditionné par la classe, concept de CycleGAN, transfert de style neuronal avec VGG.

GAN conditionnels et transfert de style est une leçon Learn AI with Python gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Learn AI with Python, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Learn AI with Python comprend 4 leçons au total.

Contrôler ce que les GAN génèrent

Un GAN classique produit des échantillons aléatoires : vous ne pouvez pas lui demander une classe précise. Cette leçon présente la génération conditionnelle (cGANs), la traduction sans paires (CycleGAN) et le transfert de style neuronal.

GAN conditionnels (cGAN)

Un cGAN ajoute une condition, comme une étiquette de classe, au Generator et au Discriminator. Vous pouvez alors demander « génère un 7 » en fournissant l'étiquette avec le bruit.

Conditionnement du Generator

Le générateur concatène l'étiquette, encodée par indicateur unique ou par plongement, avec le vecteur de bruit. Cette entrée combinée lui permet de générer des échantillons de la classe demandée.

label_emb = embedding(label)        # e.g. dim 10
z = torch.randn(batch, 100)
gen_input = torch.cat([z, label_emb], dim=1)
fake = generator(gen_input)

Conditionnement du Discriminator

Le discriminateur reçoit lui aussi l'étiquette : il ne juge donc pas seulement « est-ce réel ? », mais « est-ce un véritable exemple de cette classe ? ». Cela oblige le générateur à respecter la condition.

d_input = torch.cat([image, label_emb], dim=1)
score = discriminator(d_input)

Traduction d'images sans paires

Nous ne disposons souvent pas de paires correspondantes, par exemple du même cheval sous forme de cheval et de zèbre. CycleGAN traduit des images entre deux domaines à partir d'images non appariées, en apprenant à passer du cheval au zèbre puis inversement, sans exemples alignés.

Deux générateurs, deux domaines

CycleGAN utilise deux générateurs : G: A to B et F: B to A, chacun avec son propre discriminateur. Ensemble, ils traduisent les images dans les deux directions entre les domaines.

# G: photo -> painting
# F: painting -> photo

Perte de cohérence cyclique

L'idée centrale est la suivante : traduire A vers B puis revenir vers A doit restituer l'original. La perte de cohérence cyclique impose F(G(a)) == a, ce qui contraint la correspondance sans données appariées.

cycle_loss = (
    l1(F(G(a)), a) +
    l1(G(F(b)), b)
)

Transfert de style neuronal

Le transfert de style neuronal combine le contenu d'une image avec le style d'une autre, par exemple une photo peinte comme une œuvre de Van Gogh. Il optimise directement l'image de sortie à l'aide des caractéristiques d'un CNN préentraîné.

Perte de contenu

La perte de contenu maintient la structure de haut niveau de la sortie proche de celle de l'image de contenu en comparant les cartes de caractéristiques profondes du CNN. Elle préserve ce qui se trouve dans l'image.

content_loss = mse(features_out, features_content)

Perte de style et matrice de Gram

Le style est représenté par la matrice de Gram, qui contient les corrélations entre les canaux de caractéristiques. Comparer les matrices de Gram transfère les textures et les couleurs. La perte de style compare les matrices de Gram de la sortie et de l'image de style.

def gram(f):
    b, c, h, w = f.size()
    f = f.view(c, h * w)
    return f @ f.t()

style_loss = mse(gram(features_out), gram(features_style))

Combinaison des pertes

La perte totale est une somme pondérée : alpha * content_loss + beta * style_loss. Ajuster les poids permet de choisir entre la préservation du contenu et l'adoption plus marquée du style.

total = alpha * content_loss + beta * style_loss
total.backward()  # gradients update the output IMAGE

Vérification rapide

Évaluez vos connaissances sur la génération conditionnelle.

Récapitulatif : GAN conditionnels et transfert de style

Vous avez appris que les cGANs concatènent une étiquette de classe à l'entrée du générateur et du discriminateur pour contrôler la génération, que CycleGAN utilise une perte de cohérence cyclique pour la traduction sans paires, et que le transfert de style neuronal combine une perte de contenu avec une perte de style fondée sur une matrice de Gram pour repeindre les images.

Questions Fréquemment Posées

La leçon « GAN conditionnels et transfert de style » est-elle gratuite ?

Oui — le texte complet de « GAN conditionnels et transfert de style » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Learn AI with Python, passe à CoddyKit PRO. Le cours Learn AI with Python comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « GAN conditionnels et transfert de style » ?

cGAN conditionné par la classe, concept de CycleGAN, transfert de style neuronal avec VGG. Tu pratiques Learn AI with Python avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Learn AI with Python ?

Aucune expérience préalable n'est requise. Learn AI with Python sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.

Combien de temps prend la leçon « GAN conditionnels et transfert de style » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Learn AI with Python ?

Oui. Chaque leçon Learn AI with Python inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Autoencodeurs pour l’apprentissage de représentations
  2. Autoencodeurs variationnels (VAE)
  3. GAN : générateur et discriminateur
  4. GAN conditionnels et transfert de style
← Retour à Learn AI with Python