Distribuții de Probabilitate: nn.Softmax vs nn.LogSoftmax în PyTorch & Deep Learning Practic

Sintaxă & invocare Python
prob = nn.Softmax(dim=-1)(logits)

Funcția Softmax convertește un vector de numere reale (logits) într-o distribuție de probabilitate în care fiecare valoare este strict cuprinsă între 0 și 1, iar suma tuturor componentelor este exact 1.0.

Pentru calculul funcțiilor de pierdere precum CrossEntropyLoss sau NLLLoss, calculul direct al log(Softmax(x)) este instabil numeric dacă valorile sunt foarte mari sau mici (underflow/overflow). Din acest motiv, se utilizează nn.LogSoftmax (sau trucul LogSumExp):

import torch
import torch.nn as nn

logits = torch.tensor([[2.0, 1.0, 0.1]])

# Softmax direct pentru generare/inferență
softmax = nn.Softmax(dim=-1)
print("Probabilități:", softmax(logits))

# LogSoftmax pentru stabilitate matematică în antrenare
log_softmax = nn.LogSoftmax(dim=-1)
print("Log-probabilități:", log_softmax(logits))

În PyTorch, nn.CrossEntropyLoss combină automat LogSoftmax și NLLLoss într-o singură instrucțiune optimizată C++, primind direct logits ne-normalizați.

Învață AI • Comunitate & Q&A

Întrebări & Exemple practice: Distribuții de Probabilitate: nn.Softmax vs nn.LogSoftmax

Ai o întrebare despre Distribuții de Probabilitate: nn.Softmax vs nn.LogSoftmax 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.

Comunitate AI Adaugă o întrebare sau distribuie un cod / prompt

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.