快捷方式

FeaturePyramidNetwork

class torchvision.ops.FeaturePyramidNetwork(in_channels_list: list[int], out_channels: int, extra_blocks: Optional[ExtraFPNBlock] = None, norm_layer: Optional[Callable[[...]], Module] = None)[原始碼]

在一組特徵圖之上新增 FPN 的模組。基於 《Feature Pyramid Network for Object Detection》

目前期望特徵圖按深度遞增順序排列。

模型輸入預計為 OrderedDict[Tensor],包含將新增 FPN 的特徵圖。

引數:
  • in_channels_list (list[int]) – 傳遞給模組的每個特徵圖的通道數

  • out_channels (int) – FPN 表示的通道數

  • extra_blocks (ExtraFPNBlockNone) – 如果提供,將執行額外的操作。它被期望接受 fpn 特徵、原始特徵和原始特徵的名稱作為輸入,並返回一個新的特徵圖列表及其對應的名稱

  • norm_layer (callable, optional) – 指定要使用的歸一化層的模組。預設為:None

示例

>>> m = torchvision.ops.FeaturePyramidNetwork([10, 20, 30], 5)
>>> # get some dummy data
>>> x = OrderedDict()
>>> x['feat0'] = torch.rand(1, 10, 64, 64)
>>> x['feat2'] = torch.rand(1, 20, 16, 16)
>>> x['feat3'] = torch.rand(1, 30, 8, 8)
>>> # compute the FPN on top of x
>>> output = m(x)
>>> print([(k, v.shape) for k, v in output.items()])
>>> # returns
>>>   [('feat0', torch.Size([1, 5, 64, 64])),
>>>    ('feat2', torch.Size([1, 5, 16, 16])),
>>>    ('feat3', torch.Size([1, 5, 8, 8]))]
forward(x: dict[str, torch.Tensor]) dict[str, torch.Tensor][原始碼]

計算一組特徵圖的 FPN。

引數:

x (OrderedDict[Tensor]) – 每個特徵級別的特徵圖。

返回:

FPN 層之後的特徵圖。

它們按解析度從高到低排序。

返回型別:

results (OrderedDict[Tensor])

get_result_from_inner_blocks(x: Tensor, idx: int) Tensor[原始碼]

這相當於 self.inner_blocks[idx](x),但 torchscript 尚不支援此功能。

get_result_from_layer_blocks(x: Tensor, idx: int) Tensor[原始碼]

這相當於 self.layer_blocks[idx](x),但 torchscript 尚不支援此功能。

文件

訪問全面的 PyTorch 開發者文件

檢視文件

教程

為初學者和高階開發者提供深入的教程

檢視教程

資源

查詢開發資源並讓您的問題得到解答

檢視資源