簡體   English   中英

如何從 pytorch fasterrcnn_re.net50_fpn 中提取特征

[英]How can I extract features from pytorch fasterrcnn_resnet50_fpn

我試圖從以下代碼中提取特征。 但是,它說 'FasterRCNN' object 沒有屬性 'features' 當它有 36 個類時,我想提取具有 (36, 2048) 形狀特征的特征。 是否有任何方法可以使用預訓練的 pytorch 模型進行提取。

model = torchvision.models.detection.fasterrcnn_resnet50_fpn(pretrained=True).to(device)
features = list(model.features)

dummy_img = torch.zeros((1, 3, 800, 800)).float() # test image array

req_features = []
output = dummy_img.clone().to(device)

for feature in features:
    output = feature(output)
    if output.size()[2] < 800//16: # 800/16=50
        break
    req_features.append(feature)
    out_channels = output.size()[1]

faster_rcnn_feature_extractor = nn.Sequential(*req_features)

output_map = faster_rcnn_feature_extractor(dummy_img )
print(output_map.shape)

您正在調用的 function 返回基於GeneralizedRCNNFasterRCNN object。 如您所見,這個 object 確實沒有feature屬性。 查看其源碼,如果想獲取feature maps,可以按照L83L101

>>> images, _= model.transform(images, None)
>>> features = model.backbone(images.tensors)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM