ResNet50预训练权重新旧版本的区别resnet50(pretrained)和resnet50(weights=models.ResNet50_Weights.DEFAULT)
现象
复现度量学习的时候,前后复现的精度对不上,才发现是ResNet50预训练权重的问题
原因
2.1 旧版ResNet50预训练权重
旧版:
self.model = resnet50(pretrained=True)
对于旧版,会加载 IMAGENET1K_V1 的权重(早期训练的版本)
同样的代码,第一次Epoch为0.4758

2.1 新版ResNet50预训练权重
新版
from torchvision import models
self.model = resnet50(weights=models.ResNet50_Weights.DEFAULT)
ResNet50_Weights.IMAGENET1K_V2
https://download.pytorch.org/models/resnet50-11ad3fa6.pth
对于新版,默认加载的是 IMAGENET1K_V2(改进版,精度更高)。
同样的代码,第一次Epoch就达到了0.5192

本文来自博客园,作者:JaxonYe,转载请注明原文链接:https://www.cnblogs.com/yechangxin/articles/19102461
侵权必究

浙公网安备 33010602011771号