CANN/cann-bench ResizeBilinear算子API描述

发布时间:2026/7/5 20:08:00

CANN/cann-bench ResizeBilinear算子API描述 ResizeBilinear 算子 API 描述【免费下载链接】cann-bench评测AI在处理CANN领域代码任务的能力涵盖算子生成、算子优化等领域支撑模型选型、训练效果评估统一量化评估标准识别Agent能力短板构建CANN领域评测平台推动AI能力在CANN领域的持续演进。项目地址: https://gitcode.com/cann/cann-bench1. 算子简介使用双线性插值调整图像大小。主要应用场景图像预处理中的缩放与分辨率调整特征金字塔网络FPN中的上采样操作语义分割中的特征图恢复到原始分辨率目标检测中不同尺度特征的对齐算子特征难度等级L2FusedComposite单输入单输出输入为 4D 张量 (N, C, H, W)输出空间维度由 output_size 或 scale_factor 指定2. 算子定义数学公式$$ y \text{resize_bilinear}(x, \text{size}) $$对输入张量的空间维度 (H, W) 进行双线性插值缩放。对于输出位置 $(i, j)$根据其在输入空间中的映射坐标 $(h, w)$利用周围 4 个最近邻像素的值进行加权平均$$ y(i, j) (1-\alpha)(1-\beta) \cdot x(\lfloor h \rfloor, \lfloor w \rfloor) \alpha(1-\beta) \cdot x(\lceil h \rceil, \lfloor w \rfloor) (1-\alpha)\beta \cdot x(\lfloor h \rfloor, \lceil w \rceil) \alpha\beta \cdot x(\lceil h \rceil, \lceil w \rceil) $$其中 $\alpha h - \lfloor h \rfloor$$\beta w - \lfloor w \rfloor$。align_cornerstrue输入输出的角点像素对齐坐标映射为 $h i \times \frac{H_{in}-1}{H_{out}-1}$align_cornersfalse坐标映射为 $h (i 0.5) \times \frac{H_{in}}{H_{out}} - 0.5$3. 接口规范算子原型cann_bench.resize_bilinear(Tensor x, int[] output_size, bool align_cornersfalse, float[] scale_factornull) - Tensor y输入参数说明参数类型默认值描述xTensor必选输入张量形状为 (N, C, H, W)output_sizeint[]必选输出尺寸 [output_height, output_width]align_cornersboolfalse是否对齐角点scale_factorfloat[]null缩放因子 [scale_height, scale_width]与 output_size 互斥输出参数Shapedtype描述y(N, C, H_out, W_out)与输入 x 相同输出张量调整大小后的结果数据类型输入 dtype输出 dtypefloat16float16float32float32bfloat16bfloat16规则与约束输入 x 必须为 4D 张量形状为 (N, C, H, W)output_size 和 scale_factor 互斥两者不能同时指定output_size 为 [output_height, output_width]指定输出空间维度大小scale_factor 为 [scale_height, scale_width]指定缩放比例输出 dtype 与输入 dtype 一致支持上采样输出大于输入和下采样输出小于输入4. 精度要求采用生态算子精度标准进行验证。误差指标平均相对误差MERE采样点中相对误差平均值$$ \text{MERE} \text{avg}(\frac{\text{abs}(actual - golden)}{\text{abs}(golden)\text{1e-7}}) $$最大相对误差MARE采样点中相对误差最大值$$ \text{MARE} \max(\frac{\text{abs}(actual - golden)}{\text{abs}(golden)\text{1e-7}}) $$通过标准数据类型FLOAT16BFLOAT16FLOAT32HiFLOAT32FLOAT8 E4M3FLOAT8 E5M2通过阈值(Threshold)2^-102^-72^-132^-112^-32^-2当平均相对误差 MERE Threshold最大相对误差 MARE 10 * Threshold 时判定为通过。5. 标准 Golden 代码import torch from typing import List, Optional ResizeBilinear 算子 Torch Golden 参考实现 使用双线性插值调整图像大小 公式y resize_bilinear(x, size) def resize_bilinear( x: torch.Tensor, output_size: Optional[List[int]] None, align_corners: bool False, scale_factor: Optional[List[float]] None ) - torch.Tensor: 使用双线性插值调整图像大小 Args: x: 输入张量形状为 (N, C, H, W) output_size: 输出尺寸 [output_height, output_width] align_corners: 是否对齐角点 scale_factor: 缩放因子 [scale_height, scale_width]与 output_size 互斥 Returns: 输出张量调整大小后的结果 # 使用 PyTorch 的 interpolate 实现双线性插值 y torch.nn.functional.interpolate( x, sizeoutput_size, scale_factorscale_factor[0] if scale_factor and len(scale_factor) 1 else scale_factor, modebilinear, align_cornersalign_corners ) return y6. 额外信息算子调用示例import torch import cann_bench x torch.randn(2, 8, 512, 512, dtypetorch.float16, devicenpu) y cann_bench.resize_bilinear(x, output_size[256, 256], align_cornersFalse) # 下采样 x torch.randn(4, 4, 64, 64, dtypetorch.float32, devicenpu) y cann_bench.resize_bilinear(x, output_size[128, 128], align_cornersTrue) # 上采样 角点对齐 x torch.randn(1, 16, 128, 128, dtypetorch.bfloat16, devicenpu) y cann_bench.resize_bilinear(x, output_size[256, 256]) # bfloat16 上采样【免费下载链接】cann-bench评测AI在处理CANN领域代码任务的能力涵盖算子生成、算子优化等领域支撑模型选型、训练效果评估统一量化评估标准识别Agent能力短板构建CANN领域评测平台推动AI能力在CANN领域的持续演进。项目地址: https://gitcode.com/cann/cann-bench创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻