CANN/ops-cv双三次抗锯齿上采样梯度算子 UpsampleBicubic2dAAGrad【免费下载链接】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 训练系列产品×功能说明算子功能UpsampleBicubic2dAA的反向传播。如果输入张量的shape为(N, C, H, W)则输出张量的shape为(N, C, inputSize[2], inputSize[3])。计算公式对于一个二维插值点$(N, C, h, w)$插值$gradInput(N, C, h, w)$可以表示为$$ {gradInput(N, C, h, w)}\sum_{i0}^{3}\sum_{j0}^{3}{W(i, j)}*{f(h_i, w_j)} $$$$ scaleH \begin{cases} (inputSize[2]-1) / (outputSize[0]-1) alignCornerstrue \ 1 / scalesH alignCornersfalsescalesH0\ inputSize[2] / outputSize[0] otherwise \end{cases} $$$$ scaleW \begin{cases} (inputSize[3]-1) / (outputSize[1]-1) alignCornerstrue \ 1 / scalesW alignCornersfalsescalesW0\ inputSize[3] / outputSize[1] otherwise \end{cases} $$其中i和j是$W(i, j)$的索引变量。$f(h_i, w_j)$是gradOutput在$(h_i, w_j)$的像素值。$W(i, j)$是双三次抗锯齿插值的权重定义为$$ W(d) \begin{cases} (a2)|d|^3-(a3)|d|^21 |d|\leq1 \ a|d|^3-5a|d|^28a|d|-4a 1|d|2 \ 0 otherwise \end{cases} $$其中$a-0.5$$d |(h, w) - (h_i, w_j)|$参数说明参数名输入/输出/属性描述数据类型数据格式grad_output输入表示反向计算的梯度Tensor对应公式描述中的gradOutput。数据类型与输出grad_input的数据类型一致。FLOAT32、FLOAT16、BFLOAT16NDoutput_size属性表示输入grad_output在H和W维度上的空间大小对应公式中的outputSize。size为2且各元素均大于零。INT64-input_size属性表示输出grad_input分别在N、C、H和W维度上的空间大小对应公式中的inputSize。size为4且各元素均大于零。INT64-align_corners可选属性决定是否对齐角像素点对应公式中的alignCorners。align_corners为true则输入和输出张量的角像素点会被对齐否则不对齐。默认值为false。BOOL-scales_h可选属性表示输出grad_input的height维度乘数对应公式中的scalesH。默认值为空。FLOAT32-scales_w可选属性表示输出grad_input的width维度乘数对应公式中的scalesW。默认值为空。FLOAT32-grad_input输出表示采样后的输出张量对应公式中的gradInput。数据类型与输入grad_output的数据类型一致。FLOAT32、FLOAT16、BFLOAT16ND约束说明无调用说明调用方式样例代码说明aclnn接口test_aclnn_upsample_bicubic2d_aa_grad通过aclnnUpsampleBicubic2dAAGrad接口方式调用UpsampleBicubic2dAAGrad算子。【免费下载链接】ops-cv本项目是CANN提供的图像处理、目标检测相关的算子库实现网络在NPU上加速计算。项目地址: https://gitcode.com/cann/ops-cv创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考