快捷方式

FeaturePyramidNetwork

class torchvision.ops.FeaturePyramidNetwork(in_channels_list: List[int], out_channels: int, extra_blocks: Optional[ExtraFPNBlock] = None, norm_layer: Optional[Callable[[...], Module]] = None)[source]

一個模組,用於在一組特徵圖之上新增 FPN。這基於論文《用於目標檢測的特徵金字塔網路》

特徵圖目前應按深度遞增的順序排列。

模型的輸入應為 OrderedDict[Tensor] 型別,其中包含將新增 FPN 的特徵圖。

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

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

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

  • norm_layer (callable, 可選) – 指定要使用的歸一化層的模組。預設值: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, Tensor]) Dict[str, Tensor][source]

計算一組特徵圖的 FPN。

引數:

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

返回:

經過 FPN 層處理後的特徵圖。

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

返回型別:

results (OrderedDict[Tensor])

get_result_from_inner_blocks(x: Tensor, idx: int) Tensor[source]

這等同於 self.inner_blocks[idx](x),但 torchscript 尚不支援此語法。

get_result_from_layer_blocks(x: Tensor, idx: int) Tensor[source]

這等同於 self.layer_blocks[idx](x),但 torchscript 尚不支援此語法。

文件

查閱 PyTorch 的全面開發者文件

檢視文件

教程

獲取面向初學者和高階開發者的深度教程

檢視教程

資源

查詢開發資源並解答您的疑問

檢視資源