Wie Sie dem folgenden Code entnehmen können, ist die letzte Ebene Liner und enthält nicht die Softmax-Ebene. https://github.com/pytorch/vision/blob/master/torchvision/models/vgg.py
Ich dachte: "Nun, ist das okay?"
Es wurde alles unten geschrieben. https://discuss.pytorch.org/t/torchvision-models-dont-have-softmax-layer/18071
Zum Zeitpunkt des Lernens wird "nn.CrossEntoropyLoss ()" verwendet, dies ist jedoch nicht erforderlich, da es aus "nn.LogSoftmax" und "nn.NLLLoss" besteht.
Wenn Sie daraus schließen möchten, dass Sie die Wahrscheinlichkeit jeder Klasse möchten, benötigen Sie "nn.functional.softmax ()". Wenn Sie jedoch vorhersagen möchten, können Sie den IDX des größten Werts in "torch.max" usw. weglassen.
Zum Zeitpunkt der Klassifizierung der Klassen dachte ich, dass die letzte Schicht aufgrund des Hirntodes Softmax war, aber wenn ich sorgfältig darüber nachdenke, ist dies nur für die Verlustberechnung erforderlich, also dachte ich "Ich verstehe".
Recommended Posts