How to understand Softmax layer activations for pretrained CNN?
    11 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    AK
 el 21 de Abr. de 2021
  
    
    
    
    
    Comentada: AK
 el 27 de Abr. de 2021
            Hello, 
I was able to get softmax layer probabilities for the squeezenet network. Using 
act1 = activations(net,i,'prob','OutputAs','rows');
However, Im unsure exactly what the probabilities represent, or how to identify what class they correspond with. Could you please explain what these probabilities mean? And how to get the corresponding class? 
Thank you!
0 comentarios
Respuesta aceptada
  Jon Cherrie
    
 el 22 de Abr. de 2021
        How to identify what class they correspond with?
We can get this from the class names property of the output layer.
What these probabilities mean? 
They are the probability that the given image is in the corresponding class.
Here's an example
net = squeezenet;
img = imread('peppers.png');
img = imresize(img,net.Layers(1).InputSize(1:2));
We can get the names of the classes from the output layer, which happens to bne the last layer for this network:
c = net.Layers(end).Classes;
Then get the activations from the softmax layer
p = activations(net,img,'prob','OutputAs','rows');
Note that these sum to 1
sum(p)
ans = single
    1
We can then find the maximum probability and which class that corresponds to
[pm, i] = max(p)
pm = single
    0.4172
i = 946
c(i)
ans = categorical
     bell pepper 
This is the same information that comes from the classify command:
[cc, pp] = classify(net,img);
cc
cc = categorical
     bell pepper 
isequal(pp, p)
ans = logical
   1
4 comentarios
Más respuestas (0)
Ver también
Categorías
				Más información sobre Deep Learning Toolbox en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

