當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python PyTorch MultiScaleRoIAlign用法及代碼示例


本文簡要介紹python語言中 torchvision.ops.MultiScaleRoIAlign 的用法。

用法:

class torchvision.ops.MultiScaleRoIAlign(featmap_names: List[str], output_size: Union[int, Tuple[int], List[int]], sampling_ratio: int, *, canonical_scale: int = 224, canonical_level: int = 4)

參數

  • featmap_names(List[str]) -將用於池化的特征圖的名稱。

  • output_size(List[元組[int,int]] 或者List[int]) - 池化區域的輸出大小

  • sampling_ratio(int) -ROIAlign 的采樣率

  • canonical_scale(int,可選的) -canonical_scale為LevelMapper

  • canonical_level(int,可選的) -canonical_level為LevelMapper

Multi-scale RoIAlign 池化,對於有或沒有 FPN 的檢測都很有用。

它通過等式中指定的啟發式推斷池的規模。 Feature Pyramid Network paper 中的 1 個。它們僅關鍵字參數canonical_scalecanonical_level分別對應於等式中的224k0=4。 1,並具有以下含義: canonical_level 是金字塔的目標級別,從中與 w x h = canonical_scale x canonical_scale 匯集感興趣的區域。

例子:

>>> m = torchvision.ops.MultiScaleRoIAlign(['feat1', 'feat3'], 3, 2)
>>> i = OrderedDict()
>>> i['feat1'] = torch.rand(1, 5, 64, 64)
>>> i['feat2'] = torch.rand(1, 5, 32, 32)  # this feature won't be used in the pooling
>>> i['feat3'] = torch.rand(1, 5, 16, 16)
>>> # create some random bounding boxes
>>> boxes = torch.rand(6, 4) * 256; boxes[:, 2:] += boxes[:, :2]
>>> # original image size, before computing the feature maps
>>> image_sizes = [(512, 512)]
>>> output = m(i, [boxes], image_sizes)
>>> print(output.shape)
>>> torch.Size([6, 5, 3, 3])

相關用法


注:本文由純淨天空篩選整理自pytorch.org大神的英文原創作品 torchvision.ops.MultiScaleRoIAlign。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。