I coded my own little confusion matrix function now.
def confusion_matrix_maker(file_name):
    pos1 = 0
    pos2 = 0

    img = Image.open(img_working + file_name)
    img_eval_tensor = transform(img)
    img_eval_tensor.unsqueeze_(0)
    data = Variable(img_eval_tensor)

    if 'C1' in file_name:
        pos1 = 0
    elif 'C2' in file_name:
        pos1 = 1
    elif 'C3' in file_name:
        pos1 = 2

    net2.eval()
    output = net2(data)

    if output.data.max(1, keepdim=True)[1].numpy()[0] ==0:
        pos2 = 0
    elif output.data.max(1, keepdim=True)[1].numpy()[0] ==1:
        pos2 = 1
    elif output.data.max(1, keepdim=True)[1].numpy()[0] ==2:
        pos2 = 2

    confusion_matrix[pos1,pos2]+=1

Thats the output:
 84   3   0
  2  78   0
  0   0   6
[torch.FloatTensor of size 3x3]

But I think you got not my problem. Below is one output of my result visualization function. He predicted the class battery correct but the probability is very low. First I applied F.sigmoid() and then F.softmax() to get these probabilities. The confusion matrix above is by the way from the same test dataset with the same net where this pic came from.

The next picture is out of the same result visualization function and with the same net but here I applied only F.softmax() to the outputs of the net.

The second method with only F.softmax() feels not right for me because he totally underrates the big negative value and that seems not right for me or im I wrong here ? Below is the net output and the second tensor is F.softmax() applied on the output for the picture above.
Variable containing:
-4.6320  1.3062  3.2554
[torch.FloatTensor of size 1x3]

Variable containing:
 0.0003  0.1246  0.8751
[torch.FloatTensor of size 1x3]