nll_loss



'''
torch.nn torch.nn.functional (F)
CrossEntropyLoss cross_entropy
LogSoftmax log_softmax
NLLLoss nll_loss

'''


import torch
import torch.nn.functional as F

input=torch.randn(3,4)
label=torch.tensor([0,2,1])
print("input",input)

softmax=F.softmax(input,dim=1)
print("softmax",softmax)

log_softmax=F.log_softmax(input,dim=1)
print("log_softmax",log_softmax)


loss_nll=F.nll_loss(log_softmax,label)
print("loss_nll",loss_nll)

loss_cross=F.cross_entropy(input,label)
print("loss_cross",loss_cross)

'''
input tensor([[ 0.0363,  0.1419,  2.1639,  1.5429],
        [-0.6606, -0.0991, -0.6160, -2.4418],
        [-1.1279, -1.5333, -0.2142,  0.8669]])
softmax tensor([[0.0666, 0.0740, 0.5590, 0.3004],
        [0.2521, 0.4419, 0.2636, 0.0425],
        [0.0869, 0.0579, 0.2166, 0.6386]])
log_softmax tensor([[-2.7092, -2.6036, -0.5816, -1.2026],
        [-1.3781, -0.8166, -1.3335, -3.1592],
        [-2.4433, -2.8488, -1.5296, -0.4485]])
loss_nll tensor(1.4971)
loss_cross tensor(1.4971)


0.0363 0.1419 2.1639 1.5429
-0.6606    -0.0991    -0.616 -2.4418
-1.1279    -1.5333    -0.2142    0.8669

dim=0           
exp                                 sum
1.0370     1.1525     8.7050     4.6781     15.57258663
0.5165     0.9057     0.5401     0.0870     2.049298083
0.3237     0.2158     0.8072     2.3795     3.726244435

softmax          
0.0666     0.0740     0.5590     0.3004 
0.2521     0.4419     0.2636     0.0425 
0.0869     0.0579     0.2166     0.6386 

log_softmax          
-2.7092    -2.6036    -0.5816    -1.2026 
-1.3781    -0.8166    -1.3335    -3.1593 
-2.4433    -2.8487    -1.5296    -0.4485 

1.0370=exp(0.0363)
0.0666=1.0370/15.57258663
-2.7092=ln(0.0666)
1.497070103=abs(-2.7092-1.3335-0.44850/3

'''

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM