Clasa nn.Parameter este o sub-clasă a lui torch.Tensor care are o proprietate deosebită: atunci când este atribuită ca atribut al unui nn.Module, este adăugată automat în lista parametrilor antrenabili ai modulului (parameters()) cu requires_grad=True implicit.
import torch
import torch.nn as nn
class ScaledLinear(nn.Module):
def __init__(self, in_features, out_features):
super().__init__()
# Tensor convertit în parametru antrenabil
self.weights = nn.Parameter(torch.randn(out_features, in_features) * 0.01)
self.bias = nn.Parameter(torch.zeros(out_features))
# Scală învățabilă scalară
self.scale = nn.Parameter(torch.tensor(1.0))
def forward(self, x):
return self.scale * (x @ self.weights.t()) + self.bias
layer = ScaledLinear(8, 4)
print("Parametri:", [name for name, _ in layer.named_parameters()])
Dacă dorim să stocăm un tensor într-un modul care trebuie salvat în state_dict, dar care nu trebuie antrenat prin gradient descent (cum ar fi o mască sau media mobilă), se utilizează self.register_buffer('masca', tensor).
Întrebări & Exemple practice:
Înregistrarea Explicită a Greutăților cu nn.ParameterAi o întrebare despre Înregistrarea Explicită a Greutăților cu nn.Parameter sau ai descoperit un truc, prompt sau fragment de cod util? Distribuie-l cu ceilalți membri ai comunității!
Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau resurse pentru această pagină. Dacă ai testat un prompt sau ai un snippet util, adaugă-l mai jos pentru comunitate.