CAN/ops-cv双线性抗锯齿上采样2D反向传播算子
UpsampleBilinear2dAABackward【免费下载链接】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 训练系列产品×功能说明算子功能UpsampleBilinear2dAA的反向传播。计算公式对于一个二维插值点$(N, C, H, W)$, 插值$I(N, C, H, W)$可以表示为$$ {I(N, C, H, W)} \sum_{i0}^{kW}\sum_{j0}^{kH}{w(i) * w(j)} * {f(h_i, w_j)}/\sum_{i0}^{kW}w(i)/\sum_{j0}^{kH}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} $$其中$kW$、$kH$分别表示W方向和H方向影响插值点大小的点的数量如果$scaleH 1$则$kH floor(scaleH) * 2 1$否则$kH 3$如果$scaleW 1$则$kW floor(scaleW) * 2 1$否则$kW 3$$w(i)$、$w(j)$是双线性抗锯齿插值的W方向和H方向权重计算公式为$$ w(i) \begin{cases} 1 - |h_i - h| |h_i -h| 1 \ 0 otherwise \end{cases} $$$$ w(j) \begin{cases} 1 - |w_j - w| |w_j -w| 1 \ 0 otherwise \end{cases} $$假设正向插值的输出图像out $(h, w)$受原图像input $(h_i, w_j)$影响则有$$ gradInput(h_i,w_j) gradOutput(h,w) * w(i) * w(j) $$参数说明参数名输入/输出/属性描述数据类型数据格式grad_output输入表示反向计算的梯度Tensor对应公式中的gradOutput。FLOAT32、FLOAT16、BFLOAT16NDoutput_size可选属性指定输入空间大小对应公式中的outputSize。size为2且各元素均大于0。表示指定grad_output在H和W维度上的空间大小。默认值为空。LISTINT-input_size属性指定输出空间大小对应公式中的inputSize。size为4且各元素均大于零。表示输出grad_input分别在N、C、H和W维度上的空间大小。LISTINT-align_corners可选属性决定是否对齐角像素点对应公式中的alignCorners。align_corners为true则输入和输出张量的角像素点会被对齐否则输入和输出张量的左上角顶点及两条边对齐。默认值为false。BOOL-scales_h可选属性指定空间大小的height维度乘数对应公式中的scalesH。默认值为空。FLOAT32-scales_w可选属性指定空间大小的width维度乘数对应公式中的scalesW。默认值为空。FLOAT32-grad_input输出表示反向计算的输出张量对应公式中的gradInput。数据类型和数据格式与入参grad_output的数据类型和数据格式保持一致。FLOAT32、FLOAT16、BFLOAT16ND约束说明无调用说明调用方式样例代码说明aclnn接口test_aclnn_upsample_bilinear2d_aa_backward通过aclnnUpsampleBilinear2dAABackward接口方式调用UpsampleBilinear2dAABackward算子。【免费下载链接】ops-cv本项目是CANN提供的图像处理、目标检测相关的算子库实现网络在NPU上加速计算。项目地址: https://gitcode.com/cann/ops-cv创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考