What does PyTorch classifier output?
So i am new to deep learning and started learning PyTorch. I created a classifier model with following structure.
class model(nn.Module):
def __init__(self):
    super(model, self).__init__()
    resnet = models.resnet34(pretrained=True)
    layers = list(resnet.children())[:8]
    self.features1 = nn.Sequential(*layers[:6])
    self.features2 = nn.Sequential(*layers[6:])
    self.classifier = nn.Sequential(nn.BatchNorm1d(512), nn.Linear(512, 3))
    
def forward(self, x):
    x = self.features1(x)
    x = self.features2(x)
    x = F.relu(x)
    x = nn.AdaptiveAvgPool2d((1,1))(x)
    x = x.view(x.shape[0], -1)
    return self.classifier(x)

So basically I wanted to classify among three things {0,1,2}. While evaluating, I passed the image it returned a Tensor with three values like below
    (tensor([[-0.1526,  1.3511, -1.0384]], device='cuda:0', grad_fn=&lt;AddmmBackward&gt;)

So my question is what are these three numbers? Are they probability ?
P.S. Please pardon me If I asked something too silly.

The final layer nn.Linear (fully connected layer) of self.classifier of your model produces values, that we can call a scores, for example, it may be: [10.3, -3.5, -12.0], the same you can see in your example as well: [-0.1526,  1.3511, -1.0384]  which are not normalized and cannot be interpreted as probabilities.
As you can see it's just a kind of &quot;raw unscaled&quot; network output, in other words these values are not normalized, and it's hard to use them or interpret the results, that's why the common practice is converting them to normalized probability distribution by using softmax after the final layer, as @skinny_func has already described. After that you will get the probabilities in the range of 0 and 1, which is more intuitive representation.
