Fonction torch.nn.InstanceNorm2d de PyTorch

PyTorch torch.nn 参考手册Manuel de référence torch.nn de PyTorch


torch.nn.InstanceNorm2dIl s'agit du module de normalisation d'instance dans PyTorch.

Il normalise chaque canal de chaque échantillon indépendamment, couramment utilisé dans le transfert de style.

Définition de fonction

torch.nn.InstanceNorm2d(num_features, eps=1e-05, momentum=0.1, affine=False, track_running_stats=False)

Parameters

  • num_features: nombre de canaux
  • affine: indique si des paramètres apprenables sont utilisés

Exemples d'utilisation

Exemple 1 : Utilisation de base

Exemple

import torch
import torch.nn as nn

inorm = nn.InstanceNorm2d(64)

# Entrée
x = torch.randn(4, 64, 16, 16)
output = inorm(x)

print("Entrée :", x.shape, "-> Sortie :", output.shape)

Exemple 2 : Transfert de style

Exemple

import torch
import torch.nn as nn

# Les réseaux de transfert de style utilisent couramment InstanceNorm
class StyleNet(nn.Module):
    def __init__(self):
        super(StyleNet, self).__init__()
        self.conv1 = nn.Conv2d(3, 32, 3, padding=1)
        self.in1 = nn.InstanceNorm2d(32)
        self.conv2 = nn.Conv2d(32, 64, 3, padding=1)
        self.in2 = nn.InstanceNorm2d(64)

    def forward(self, x):
        x = self.conv1(x)
        x = self.in1(x)
        x = torch.relu(x)
        x = self.conv2(x)
        x = self.in2(x)
        return x

net = StyleNet()
x = torch.randn(1, 3, 256, 256)
output = net(x)

print("Entrée :", x.shape, "-> Sortie :", output.shape)

Exemple 3 : Comparaison avec BatchNorm

Exemple

import torch
import torch.nn as nn

bn = nn.BatchNorm2d(32)
inorm = nn.InstanceNorm2d(32)

x = torch.randn(4, 32, 8, 8)

print("Moyenne BatchNorm :", bn(x).mean(dim=(0, 2, 3))[:5].tolist())
print("InstanceNorm moyenne :", inorm(x).mean(dim=(0, 2, 3))[:5].tolist())

Cas d'utilisation

  • Transfert de style: NIN、AdaIN
  • Synthèse de texture
  • Petit lot: convient pour batch=1

Remarque : par défaut affine=False, ne contient aucun paramètre apprenable.


PyTorch torch.nn 参考手册Manuel de référence torch.nn de PyTorch

Autres extensions