TorchVision检测模型有一个weights和一个weights_backbone参数。使用预先训练的weights是否意味着该模型在幕后使用预先训练的weights_backbone?我正在训练RetinaNet模型,嗯不确定我应该使用这两个选项中的哪一个,以及它们的区别是什么。
weights
weights_backbone
kpbwa7wx1#
区别很简单:您可以选择只在 Backbone.js 网上进行传送学习,也可以选择在整个网络上进行传送学习。Torchvision的RetinaNet有一个Resnet50 Backbone 网。您应该能够同时执行以下两项操作:
retinanet_resnet50_fpn(weights=RetinaNet_ResNet50_FPN_Weights.COCO_V1)
retinanet_resnet50_fpn(backbone_weights=ResNet50_Weights.IMAGENET1K_V1)
正如它们的名字所暗示的, Backbone 权重是不同的,前者在COCO(对象检测)上训练,而后者在ImageNet(分类)上训练。为了回答你的问题,预先训练的weights意味着整个网络,包括 Backbone.js 权重,都被初始化了,但是,我不认为它在幕后调用了backbone_weights。
backbone_weights
1条答案
按热度按时间kpbwa7wx1#
区别很简单:您可以选择只在 Backbone.js 网上进行传送学习,也可以选择在整个网络上进行传送学习。
Torchvision的RetinaNet有一个Resnet50 Backbone 网。您应该能够同时执行以下两项操作:
retinanet_resnet50_fpn(weights=RetinaNet_ResNet50_FPN_Weights.COCO_V1)
retinanet_resnet50_fpn(backbone_weights=ResNet50_Weights.IMAGENET1K_V1)
正如它们的名字所暗示的, Backbone 权重是不同的,前者在COCO(对象检测)上训练,而后者在ImageNet(分类)上训练。
为了回答你的问题,预先训练的
weights
意味着整个网络,包括 Backbone.js 权重,都被初始化了,但是,我不认为它在幕后调用了backbone_weights
。