El resultado de la inferencia del modelo de llamada de antorcha es un análisis incorrecto

El código modificado está disponible aquí: https://github.com/BIGBALLON/CIFAR-ZOO/blob/master/eval.py

1. ¿El modelo se ha importado correctamente?

1.1 problema

Missing key(s) in state_dict: "features.0.weight"
Unexpected key(s) in state_dict: "module.features.0.weight"

Por ejemplo, si se utiliza el siguiente comando en este momento para importar el modelo:

net.load_state_dict(checkpoint["state_dict"], strict=False)

Aquí, el parámetro estricto se establece en Falso (se ignorarán los parámetros de capa de red que no coincidan). Cómo utilizar el nombre del modelo de entrenamiento paralelo de múltiples GPU durante el entrenamiento, habrá más "módulo", es posible que el modelo no se importe correctamente.

referencia:

https://blog.csdn.net/shiwanghualuo/article/details/101756876

https://blog.csdn.net/qq_32998593/article/details/89343507

1.2 Resolver

    net.load_state_dict({k.replace('module.',''):v for k,v in checkpoint["state_dict"].items()}, strict=True)

2. Procesamiento previo de la imagen de entrada

Torch a menudo usa PIL para leer imágenes, algunos preprocesos en transformaciones (cambio de tamaño, ToTensor, etc.). Se ha verificado antes que PIL y opencv solo necesitan convertirse al mismo espacio de color, y básicamente no hay problema.

 

Supongo que te gusta

Origin blog.csdn.net/qq_35975447/article/details/113879682
Recomendado
Clasificación