Fonction torch.nn.Parameter de PyTorch

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


torch.nn.ParameterC'est un tenseur de paramètres apprenables dans PyTorch.

C'est un wrapper qui convertit un tenseur ordinaire en un paramètre apprenable et est automatiquement ajouté à la liste des paramètres du module.

Définition de fonction

torch.nn.Parameter(data=None, requires_grad=True)

Exemples d'utilisation

Exemple 1 : Utilisation de base

Exemple

import torch
import torch.nn as nn

class MyModule(nn.Module):
    def __init__(self):
        super(MyModule, self).__init__()
        # Créer un paramètre apprenable
        self.weight = nn.Parameter(torch.randn(10, 5))
        self.bias = nn.Parameter(torch.zeros(5))

    def forward(self, x):
        return x @ self.weight.t() + self.bias

model = MyModule()
print("Paramètres :", list(model.named_parameters()))
print("Forme du poids :", model.weight.shape)

Exemple 2 : Alternative à register_parameter

Exemple

import torch
import torch.nn as nn

# Méthode 1 : Utiliser nn.Parameter (recommandé)
class Net1(nn.Module):
    def __init__(self):
        super().__init__()
        self.param = nn.Parameter(torch.ones(5))

# Méthode 2 : Utiliser register_parameter (équivalent)
class Net2(nn.Module):
    def __init__(self):
        super().__init__()
        self.register_parameter('param', nn.Parameter(torch.ones(5)))

print("Paramètres de la méthode 1 :", list(Net1().named_parameters()))
print("Paramètres de la méthode 2 :", list(Net2().named_parameters()))

Exemple 3 : paramètres non apprenables

Exemple

import torch
import torch.nn as nn

# requires_grad=False crée un paramètre non apprenable
param_no_grad = nn.Parameter(torch.ones(5), requires_grad=False)

print("Entraînable :", param_no_grad.requires_grad)
print("Toujours un Parameter :", type(param_no_grad))

Cas d'utilisation

  • Couches personnalisées: implémenter des poids apprenables
  • Modules spéciaux: paramètres non standard
  • Accès direct: opération pratique

Astuce : nn.Parameter est une sous-classe de tensor et est automatiquement ajouté à parameters().


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

Autres extensions