¿Por qué las redes profundas (vgg, resnet) no utilizan la función softmax (normalización de probabilidad) al final, sino que agregan directamente la capa fc?

Este problema es muy simple: no es que no se use softmax, sino que softmax no se usa explícitamente.

Con el desarrollo de marcos de aprendizaje profundo, para un mejor rendimiento, algunos marcos eligen agregar softmax de forma predeterminada cuando usan la función de pérdida de entropía cruzada. De esta manera, no importa cuál sea su capa de salida, siempre que use nn.CrossEntropyLoss, Se agregará de forma predeterminada softmax. Esto no solo es cierto para Pytorch, sino también para marcos domésticos como PaddlePaddle2.0. Sin embargo, en algunas versiones anteriores, softmax no se agregó implícitamente de forma predeterminada, por lo que habrá algunos tutoriales/materiales que requerirán que softmax se agregue manualmente al escribir el código correspondiente. Por supuesto, si su propio marco necesita agregar softmax manualmente a la capa de salida, se recomienda leer la documentación API correspondiente. Los rumores no son necesariamente aconsejables: después de todo, se puede utilizar un softmax para la clasificación, pero es posible que dos softmax no converjan.
Insertar descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/qq_43374694/article/details/132588508
Recomendado
Clasificación