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


Python mxnet.symbol.contrib.ModulatedDeformableConvolution用法及代碼示例


用法:

mxnet.symbol.contrib.ModulatedDeformableConvolution(data=None, offset=None, mask=None, weight=None, bias=None, kernel=_Null, stride=_Null, dilate=_Null, pad=_Null, num_filter=_Null, num_group=_Null, num_deformable_group=_Null, workspace=_Null, no_bias=_Null, im2col_step=_Null, layout=_Null, name=None, attr=None, out=None, **kwargs)

參數

  • data(Symbol) - 輸入數據到ModulatedDeformableConvolutionOp
  • offset(Symbol) - 輸入偏移量到ModulatedDeformableConvolutionOp
  • mask(Symbol) - ModulatedDeformableConvolutionOp 的輸入掩碼
  • weight(Symbol) - 權重矩陣。
  • bias(Symbol) - 偏置參數。
  • kernel(Shape(tuple), required) - 卷積核大小:(h, w) 或 (d, h, w)
  • stride(Shape(tuple), optional, default=[]) - 卷積步幅:(h, w) 或 (d, h, w)。每個維度默認為 1。
  • dilate(Shape(tuple), optional, default=[]) - 卷積膨脹:(h, w) 或 (d, h, w)。每個維度默認為 1。
  • pad(Shape(tuple), optional, default=[]) - 卷積的零填充:(h, w) 或 (d, h, w)。默認為無填充。
  • num_filter(int (non-negative), required) - 卷積濾波器(通道)編號
  • num_group(int (non-negative), optional, default=1) - 組分區數。
  • num_deformable_group(int (non-negative), optional, default=1) - 可變形組分區的數量。
  • workspace(long (non-negative), optional, default=1024) - 卷積允許的最大溫度工作空間 (MB)。
  • no_bias(boolean, optional, default=0) - 是否禁用偏差參數。
  • im2col_step(int (non-negative), optional, default=64) - 每個 im2col 計算的最大圖像數;總批大小應可被此值整除或小於此值;如果您遇到內存不足的問題,可以嘗試在此處使用較小的值。
  • layout({None, 'NCDHW', 'NCHW', 'NCW'},optional, default='None') - 設置輸入、輸出和權重的布局。默認布局為空:NCW 表示 1d,NCHW 表示 2d,NCDHW 表示 3d。
  • name(string, optional.) - 結果符號的名稱。

返回

結果符號。

返回類型

Symbol

在 4-D 輸入上計算 2-D 調製可變形卷積。

https://arxiv.org/abs/1811.11168中說明了調製的可變形卷積操作

對於二維調製可變形卷積,形狀為

  • data(batch_size, channel, height, width)
  • offset(batch_size, num_deformable_group * kernel[0] * kernel[1] * 2, height, width)
  • mask(batch_size, num_deformable_group * kernel[0] * kernel[1], height, width)
  • weight(num_filter, channel, kernel[0], kernel[1])
  • bias(num_filter,)
  • out(batch_size, num_filter, out_height, out_width).

定義:

f(x,k,p,s,d) = floor((x+2*p-d*(k-1)-1)/s)+1

那麽我們有:

out_height=f(height, kernel[0], pad[0], stride[0], dilate[0])
out_width=f(width, kernel[1], pad[1], stride[1], dilate[1])

如果 no_bias 設置為 true,則忽略 bias 項。

默認數據 layoutNCHW ,即 (batch_size, channle, height, width)

如果 num_group 大於 1,用 g 表示,則將輸入 data 沿通道軸均勻拆分為 g 部分,並沿第一維均勻拆分 weight。接下來計算 i -th 數據部分與 i -th 權重部分的卷積。通過連接所有g 結果獲得輸出。

如果num_deformable_group大於1,記為dg,則將輸入offset沿通道軸均勻拆分為dg部分,同時將out沿通道軸均勻拆分為dg部分.接下來計算可變形卷積,將偏移部分的 i -th 部分應用於 i -th out。

weightbias 都是可學習的參數。

相關用法


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