pytorch TorchVision使用整个模型与 Backbone 的预训练权重

t2a7ltrp  于 2022-11-23  发布在  其他
关注(0)|答案(1)|浏览(216)

TorchVision检测模型有一个weights和一个weights_backbone参数。使用预先训练的weights是否意味着该模型在幕后使用预先训练的weights_backbone?我正在训练RetinaNet模型,嗯不确定我应该使用这两个选项中的哪一个,以及它们的区别是什么。

kpbwa7wx

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

相关问题