文档反馈

问题文档片段

问题文档片段包含公式时,显示为空格。

提交类型
issue

有点复杂...

找人问问吧。

PR

小问题,全程线上修改...

一键搞定!

请选择提交类型

问题类型
规范和低错类

- 规范和低错类:

- 错别字或拼写错误,标点符号使用错误、公式错误或显示异常。

- 链接错误、空单元格、格式错误。

- 英文中包含中文字符。

- 界面和描述不一致,但不影响操作。

- 表述不通顺,但不影响理解。

- 版本号不匹配:如软件包名称、界面版本号。

易用性

- 易用性:

- 关键步骤错误或缺失,无法指导用户完成任务。

- 缺少主要功能描述、关键词解释、必要前提条件、注意事项等。

- 描述内容存在歧义指代不明、上下文矛盾。

- 逻辑不清晰,该分类、分项、分步骤的没有给出。

正确性

- 正确性:

- 技术原理、功能、支持平台、参数类型、异常报错等描述和软件实现不一致。

- 原理图、架构图等存在错误。

- 命令、命令参数等错误。

- 代码片段错误。

- 命令无法完成对应功能。

- 界面错误,无法指导操作。

- 代码样例运行报错、运行结果不符。

风险提示

- 风险提示:

- 对重要数据或系统存在风险的操作,缺少安全提示。

内容合规

- 内容合规:

- 违反法律法规,涉及政治、领土主权等敏感词。

- 内容侵权。

请选择问题类型

问题描述

点击输入详细问题描述,以帮助我们快速定位问题。

mindspore.ops.deformable_conv2d

查看源文件
mindspore.ops.deformable_conv2d(x, weight, offsets, kernel_size, strides, padding, bias=None, dilations=(1, 1, 1, 1), groups=1, deformable_groups=1, modulated=True)[源代码]

给定4D的Tensor输入 xweightoffsets ,计算一个2D的可变形卷积。可变形卷积运算可以表达如下:

可变形卷积v1:

y(p)=k=1Kwkx(p+pk+Δpk)

可变形卷积v2:

y(p)=k=1Kwkx(p+pk+Δpk)Δmk

其中 ΔpkΔmk 分别为第k个位置的可学习偏移和调制标量。细节请参考论文 Deformable ConvNets v2: More Deformable, Better ResultsDeformable Convolutional Networks

参数:
  • x (Tensor) - 一个四维Tensor,表示输入图像。数据格式为"NCHW",shape为 (N,Cin,Hin,Win) 。Dytpe为float16或float32。

  • weight (Tensor) - 一个四维Tensor,表示可学习的滤波器。数据类型必须与 x 相同,shape为 (Cout,Cin/groups,Hf,Wf)

  • offsets (Tensor) - 一个四维Tensor,存储x和y坐标的偏移,以及可变形卷积的输入掩码mask。数据格式为"NCHW",shape为 (batch,3deformable_groupsHfWf,Hout,Wout) ,注意其中C维度的存储顺序为(offset_x, offset_y, mask)。数据类型必须与 x 相同。

  • kernel_size (tuple[int]) - 一个包含两个整数的元组,表示卷积核的大小。

  • strides (tuple[int]) - 一个包含四个整数的元组,表示对于输入的每个维度的滑动窗口步长。其维度顺序依据 x 的数据格式,对应N和C维度的值必须设置成1。

  • padding (tuple[int]) - 一个包含四个整数的元组,表示沿(上,下,左,右)四个方向往输入填充的像素点个数。

  • bias (Tensor, 可选) - 一个一维Tensor,表示加到卷积输出的偏置参数。shape为 (Cout) 。默认值为 None

  • dilations (tuple[int], 可选) - 一个包含四个整数的元组,表示对于输入的每个维度的膨胀系数。其维度顺序依据 x 的数据格式,对应N和C维度的值必须设置成1。默认值为 (1, 1, 1, 1)

  • groups (int, 可选) - 一个int32类型的整数,表示从输入通道到输出通道的阻塞连接数。输入通道数和输出通道数必须都能被 groups 整除。默认值为 1

  • deformable_groups (int, 可选) - 一个int32类型的整数,表示可变形卷积组数。输入通道数必须能被 deformable_groups 整除。默认值为 1

  • modulated (bool, 可选) - 指定可变形二维卷积的版本。 True 表示v2,False表示v1。当前只支持设置为v2版本。默认值为 True

返回:

Tensor,一个四维Tensor,表示输出特征图。数据类型与 x 相同,数据格式为"NCHW",shape为 (N,Cout,Hout,Wout)

Hout=Hin+padding[0]+padding[1](Hf1)×dilations[2]1stride[0]+1Wout=Win+padding[2]+padding[3](Wf1)×dilations[3]1stride[1]+1
异常:
  • TypeError - 如果 stridespaddingkernel_size 或者 dilations 不是一个整数元组。

  • TypeError - 如果 modulated 不是一个布尔值。

  • ValueError - 如果 stridespaddingkernel_size 或者 dilations 的元组不是期望的大小。

  • ValueError - 如果 strides 或者 dilations 对应N和C维度的值不为1。

  • ValueError - 如果 modulated 的值不是True。

警告

这是一个实验性API,后续可能修改或删除。

支持平台:

Ascend GPU CPU

样例:

>>> import numpy as np
>>> from mindspore import Tensor, ops
>>> from mindspore import dtype as mstype
>>> x = Tensor(np.ones((4, 3, 10, 10)), mstype.float32)
>>> kh, kw = 3, 3
>>> weight = Tensor(np.ones((5, 3, kh, kw)), mstype.float32)
>>> offsets = Tensor(np.ones((4, 3 * kh * kw, 8, 8)), mstype.float32)
>>> output = ops.deformable_conv2d(x, weight, offsets, (kh, kw), (1, 1, 1, 1), (0, 0, 0, 0))
>>> print(output.shape)
(4, 5, 8, 8)