deform_conv2d
deform_conv2d 对输入4-D Tensor计算2-D可变形卷积。给定输入Tensor x,输出Tensor y,可变形卷积运算如下所示:
可形变卷积v2(mask != None):
可形变卷积v1(mask = None):
其中
和
分别为第k个位置的可学习偏移和调制标量。在deformable conv v1中
为1.
具体细节可以参考论文:<<Deformable ConvNets v2: More Deformable, Better Results>> 和 。
示例
输入:
卷积核形状:
offset 形状:
mask 形状:
输出:
输出形状:
其中
参数:
x (Tensor) - 形状为
offset (Tensor) – 可变形卷积层的输入坐标偏移,数据类型为float32或float64。
bias (Tensor, 可选) - 可变形卷积偏置项, 形状为
。
stride (int|list|tuple,可选) - 步长大小。卷积核和输入进行卷积计算时滑动的步长。如果它是一个列表或元组,则必须包含两个整型数:(stride_height,stride_width)。若为一个整数,stride_height = stride_width = stride。默认值:1。
dilation (int|list|tuple,可选) - 空洞大小。空洞卷积时会使用该参数,卷积核对输入进行卷积时,感受野里每相邻两个特征点之间的空洞信息。如果空洞大小为列表或元组,则必须包含两个整型数:(dilation_height,dilation_width)。若为一个整数,dilation_height = dilation_width = dilation。默认值:1。
groups (int,可选) - 二维卷积层的组数。根据Alex Krizhevsky的深度卷积神经网络(CNN)论文中的成组卷积:当group=n,输入和卷积核分别根据通道数量平均分为n组,第一组卷积核和第一组输入进行卷积计算,第二组卷积核和第二组输入进行卷积计算,……,第n组卷积核和第n组输入进行卷积计算。默认值:1。
name (str,可选) – 具体用法请参见 Name ,一般无需设置,默认值为None。
返回:可变形卷积输出的4-D Tensor,数据类型为float32或float64。
代码示例: