aclnnGridSampler2D
产品支持情况
功能说明
接口功能:提供一个输入Tensor以及一个对应的grid网格,然后根据grid中每个位置提供的坐标信息,将input中对应位置的像素值填充到网格指定的位置,得到最终的输出。
计算公式:
输入input、grid网格、输出output的尺寸如下:
其中input、grid、output中的N是一致的,input和output中的C是一致的,grid和output中的、是一致的,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”接口执行计算。
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(双三次插值)。
返回值:
第一段接口完成入参校验,出现以下场景时报错:
[object Object]
aclnnGridSampler2D
约束说明
- 参数
[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默认确定性实现。