昇腾社区首页
中文
注册
开发者
下载

aclnnGridSampler2D

产品支持情况

[object Object]undefined

功能说明

  • 接口功能:提供一个输入Tensor以及一个对应的grid网格,然后根据grid中每个位置提供的坐标信息,将input中对应位置的像素值填充到网格指定的位置,得到最终的输出。

  • 计算公式:

    输入input、grid网格、输出output的尺寸如下:

    input:(N,C,Hin,Win)grid:(N,Hout,Wout,2)output:(N,C,Hout,Wout)input: (N, C, H_{in}, W_{in})\\ grid: (N, H_{out}, W_{out}, 2)\\ output: (N, C, H_{out}, W_{out})

    其中input、grid、output中的N是一致的,input和output中的C是一致的,grid和output中的HoutH_{out}WoutW_{out}是一致的,grid最后一维大小为2,表示input像素位置信息为(x, y),会将x和y的取值范围归一化到[-1, 1]之间,(-1, 1)表示左上角坐标,(1, 1)表示右下角坐标。

    • 对于超出范围的坐标,会根据paddingMode进行不同处理:

      • paddingMode=0,表示对越界位置用0填充。
      • paddingMode=1,表示对越界位置用边界值填充。
      • paddingMode=2,表示对越界位置用边界值的对称值填充。
    • 对input采样时,会根据interpolationMode进行不同处理:

      • interpolationMode=0,表示取(x, y)周围四个坐标的加权平均值。
      • interpolationMode=1,表示取input中距离(x, y)最近的坐标值。
      • interpolationMode=2,表示取(x, y)周围十六个坐标的加权平均值。

函数原型

每个算子分为,必须先调用“aclnnGridSampler2DGetWorkspaceSize”接口获取计算所需workspace大小以及包含了算子计算流程的执行器,再调用“aclnnGridSampler2D”接口执行计算。

[object Object]
[object Object]

aclnnGridSampler2DGetWorkspaceSize

  • 参数说明:

    [object Object]
    • [object Object]Atlas 训练系列产品[object Object]:

      入参[object Object]不支持插值模式2:bicubic(双三次插值)。

    • [object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]、[object Object]Atlas A3 训练系列产品/Atlas A3 推理系列产品[object Object]:

      入参[object Object],仅当input数据类型为FLOAT32或者FLOAT16时支持2:bicubic(双三次插值)。

  • 返回值:

    aclnnStatus:返回状态码,具体参见

    第一段接口完成入参校验,出现以下场景时报错:

    [object Object]

aclnnGridSampler2D

  • 参数说明:

    [object Object]
  • 返回值:

    aclnnStatus:返回状态码,具体参见

约束说明

  • 参数[object Object][object Object][object Object]的数据格式只支持(N, C, H, W),当输入其他数据格式时,默认按照(N, C, H, W)格式处理。
  • 输入[object Object]的(H轴的大小 * W轴的大小) < INT32的最大值。
  • grid的输入值*图片(长或宽)大于24位的二进制数(16777216),采样点可能存在误差,精度可能产生偏差。
  • 如果grid含有大量超过[-1, 1]范围的数据,使用zeros或者border的填充策略时,计算结果中的值会大量重复。
  • [object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]、[object Object]Atlas A3 训练系列产品/Atlas A3 推理系列产品[object Object]:
    • 如果grid存在超出[-1, 1]范围的数据,使用bicubic插值时,小值域数据计算可能存在误差,精度可能产生偏差。
    • 使用bilinear或者bicubic插值时,针对FLOAT16数据类型,需要使用workspace内存。
  • [object Object]Atlas 训练系列产品[object Object]:使用bilinear插值时,针对FLOAT16数据类型,需要使用workspace内存。
  • 确定性计算:
    • aclnnGridSampler2D默认确定性实现。

调用示例

示例代码如下,仅供参考,具体编译和执行过程请参考

[object Object]