Le résultat de l'inférence du modèle d'appel de torche est une analyse erronée

Le code modifié disponible ici: https://github.com/BIGBALLON/CIFAR-ZOO/blob/master/eval.py

1. Le modèle a-t-il été importé avec succès?

1.1 problème

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

Par exemple, si la commande suivante est utilisée à ce stade pour importer le modèle:

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

Ici, le paramètre strict est défini sur False (les paramètres de couche réseau sans correspondance seront ignorés). Comment utiliser le nom du modèle de formation parallèle multi-GPU lors de la formation, il y aura plus de "module"., Le modèle peut ne pas être importé avec succès.

référence:

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

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

1.2 Résoudre

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

2. Prétraitement de l'image d'entrée

Torch utilise souvent PIL pour lire les images, certains prétraitements dans les transformations (redimensionnement, ToTensor, etc.). Il a été vérifié auparavant que PIL et opencv ne doivent être convertis que dans le même espace colorimétrique, et ce n'est fondamentalement pas un problème.

 

Je suppose que tu aimes

Origine blog.csdn.net/qq_35975447/article/details/113879682
conseillé
Classement