GridSample【免费下载链接】ops-cv本项目是CANN提供的图像处理、目标检测相关的算子库实现网络在NPU上加速计算。项目地址: https://gitcode.com/cann/ops-cv产品支持情况产品是否支持Ascend 950PR/Ascend 950DT√Atlas A3 训练系列产品/Atlas A3 推理系列产品√Atlas A2 训练系列产品/Atlas A2 推理系列产品√Atlas 200I/500 A2 推理产品×Atlas 推理系列产品×Atlas 训练系列产品×Kirin X90 处理器系列产品√Kirin 9030 处理器系列产品√功能说明算子功能提供一个输入tensor以及一个对应的grid网格然后根据grid中每个位置提供的坐标信息将input中对应位置的像素值填充到网格指定的位置得到最终的输出。计算公式计算流程根据grid存储的(x, y)或者(x, y, z)值计算出映射到input上坐标这些坐标和align_corners、padding_mode有关。坐标根据输入的interpolation_mode选择使用bilinear、nearest、bicubic不同插值模式计算输出值。其中3D场景输入input、grid网格、输出output的尺寸如下$$ input: (N, C, D_{in}, H_{in}, W_{in})\ grid: (N, D_{out}, H_{out}, W_{out}, 3)\ output: (N, C, D_{out}, H_{out}, W_{out}) $$其中input、grid、output中的N是一致的input和output中的C是一致的grid和output中的$D_{out}$、$H_{out}$、$W_{out}$是一致的grid最后一维大小为3表示input像素位置信息为(x, y, z)会将x、y、z的取值范围归一化到[-1, 1]之间。2D场景输入input、grid网格、输出output的尺寸如下$$ 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中的$H_{out}$、$W_{out}$是一致的grid最后一维大小为2表示input像素位置信息为(x, y)会将x和y的取值范围归一化到[-1, 1]之间(-1, 1)表示左上角坐标(1, -1)表示右下角坐标。对于超出范围的坐标会根据padding_mode进行不同处理padding_modezeros表示对越界位置用0填充。padding_modeborder表示对越界位置用边界值填充。padding_modereflection表示对越界位置用边界值的对称值填充。对input采样时会根据interpolation_mode进行不同处理interpolation_modebilinear表示取input中(x, y)或者(x, y, z)周围四个或八个坐标的加权平均值。interpolation_modenearest表示取input中距离(x, y)或者(x, y, z)最近的坐标值。interpolation_modebicubic表示取input中(x, y)周围十六个坐标的加权平均值。参数说明参数名输入/输出/属性描述数据类型数据格式x输入进行插值计算的输入张量对应公式中描述的input。FLOAT16、FLOAT32NDgrid输入采样的网格对应公式中描述的grid。FLOAT16、FLOAT32、BFLOAT16NDinterpolation_mode可选属性表示插值模式对应公式描述中的interpolation_mode。支持bilinear双线性插值、nearest最邻近插值、bicubic双三次插值。默认值为bilinear。STRING-padding_mode可选属性表示填充模式对应公式描述中的padding_mode。支持zeros(0)、border(1)、reflection(2)三种模式。默认值为zeros。STRING-align_corners可选属性表示设定特征图坐标与特征值的对应方式设定为true时特征值位于像素中心。设定为false时特征值位于像素的角点。默认值为false。BOOL-channel_last可选属性指定输入x的C轴是否在最后。如果为true则x的形状为[batch, height, width, channels]否则为[batch, channels, height, width]。默认值为false。BOOL-scheduler_mode可选属性调度模式执行的操作方式。0一般1滑动窗口。仅当channel_last的值为true时配置为1有效。默认值为1。INT-y输出插值计算的最终输出结果对应公式中描述的output。FLOAT16、FLOAT32、BFLOAT16NDAtlas 推理系列产品 2D场景下需要同时满足以下条件输入和输出的数据类型仅支持FLOAT32。属性interpolation_mode需要设置为bilinear。属性padding_mode设置为zeros。输入x的C轴的值为32或者$C轴的大小 * H轴的大小 * W轴的大小 20k$。不支持3D场景。Kirin X90 处理器系列产品 、 Kirin 9030 处理器系列产品 不支持BFLOAT16。约束说明3D场景下属性interpolation_mode不支持配置为bicubic。输入x的$D轴的大小 * H轴的大小 * W轴的大小 INT32的最大值$。2D场景下输入x的$H轴的大小 * W轴的大小 INT32的最大值$。x和grid的shape所有维度都必须大于0。输入x的$D轴的大小 * H轴的大小 * W轴的大小 INT32的最大值$。grid的$输入值 * 图片长或宽 24位的二进制数16777216$采样点可能存在误差精度可能产生偏差。Atlas A2 训练系列产品/Atlas A2 推理系列产品 、 Atlas A3 训练系列产品/Atlas A3 推理系列产品 如果grid存在超出[-1, 1]范围的数据使用bicubic插值时小值域数据计算可能存在误差精度可能产生偏差。调用说明调用方式样例代码说明aclnn接口test_aclnn_grid_sample2_d通过aclnnGridSampler2D接口方式调用GridSample算子。aclnn接口test_aclnn_grid_sample3_d通过aclnnGridSampler3D接口方式调用GridSample算子。图模式-通过算子IR构图方式调用GridSample算子。【免费下载链接】ops-cv本项目是CANN提供的图像处理、目标检测相关的算子库实现网络在NPU上加速计算。项目地址: https://gitcode.com/cann/ops-cv创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考