news 2026/5/10 2:33:51

CANN/ops-cv一维线性上采样

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CANN/ops-cv一维线性上采样

UpsampleLinear1d

【免费下载链接】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 训练系列产品×

功能说明

  • 算子功能:对由多个输入通道组成的输入信号应用线性插值算法进行上采样。如果输入shape为(N, C, L),则输出shape为(N, C, outputSize)。

  • 计算公式:

    • 核心算法逻辑:

      1. 将目标图像的每一个点映射回原图,得到一个带小数点的坐标。
      2. 根据这个浮点数坐标,计算前后相邻的原始图像的点。
      3. 分别计算相邻点到对应目标点的权重,按照权重相乘累加即可得到目标点值。
    • 具体计算逻辑: 缩放方式分为角对齐和边对齐,角对齐表示按照原始图片左上角像素中心点对齐,边对齐表示按照原始图片左上角顶点及两条边对齐,在计算缩放系数和坐标位置时存在差异。则有以下公式:

      $$ scale =\begin{cases} (self.dim[2]-1) / (outputSize[0]-1) & alignCorners=true \ 1 / scales & alignCorners=false&scales>0\ self.dim[2] / outputSize[0] & alignCorners=false \end{cases} $$

      因此,对于output的某个方向上的点p(x),映射回原始图像中的点记为q(x'),则有关系:

      $$ x' =\begin{cases} x * scale_h & alignCorners=true \ MAX(0,{(x+0.5)*scale_h-0.5}) & alignCorners=false \end{cases} $$

      • 记:

        $$ x_{0} =int(x'),x_{1} =int(x')+1, lambda_{0} = x_{1}-x', lambda_{1} = 1-lambda_{0} $$

      • 则有以下公式:

        $$ {V(p_{x})} = {V(p_{x0})} * {lambda_{0}} + {V(p_{x1})} * {lambda_{1}} $$

参数说明

参数名输入/输出/属性描述数据类型数据格式
x输入表示进行上采样的输入张量,对应公式中的`self`。FLOAT32、FLOAT16、BFLOAT16ND
size输入指定输出空间大小,对应公式中的`outputSize`。size为1,且取值大于0。表示指定`y`在H和W维度上的空间大小。INT32-
align_corners可选属性
  • 决定是否对齐角像素点,对应公式中的`alignCorners`。如果设置为true,则输入和输出张量按其角像素的中心点对齐,保留角像素处的值;如果设置为false,则输入和输出张量通过其角像素的角点对齐,并且插值使用边缘值填充用于外界边值。
  • 默认值为false。
BOOL-
scales可选属性
  • 表示输出`y`的L维度乘数,对应公式中的`scales`。
  • 无默认值。
FLOAT32-
y输出表示采样后的输出张量,对应公式描述中的`output`。数据类型、数据格式与入参`x`的数据类型、数据格式保持一致。FLOAT32、FLOAT16、BFLOAT16ND

约束说明

调用说明

调用方式样例代码说明
aclnn接口test_aclnn_upsample_linear1d通过aclnnUpsampleLinear1d接口方式调用UpsampleLinear1d算子。

【免费下载链接】ops-cv本项目是CANN提供的图像处理、目标检测相关的算子库,实现网络在NPU上加速计算。项目地址: https://gitcode.com/cann/ops-cv

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/10 2:30:48

Rust构建AI API网关:将Cursor CLI封装为OpenAI/Anthropic兼容接口

1. 项目概述:用Rust为Cursor AI模型打造一个通用API网关 如果你和我一样,既是Cursor的深度用户,又经常需要把AI能力集成到自己的应用里,那你肯定遇到过这个痛点:Cursor的 agent 命令行工具功能强大,但它…

作者头像 李华
网站建设 2026/5/10 2:30:47

AI IDE账号统一管理:Cockpit Tools实现多平台一键切换与多开

1. 项目概述:为什么我们需要一个AI IDE账号管理器?如果你和我一样,是个重度依赖AI编程助手的开发者,那你手头肯定不止一个账号。可能是为了应对不同项目的配额限制,也可能是想体验不同模型的能力,又或者单纯…

作者头像 李华
网站建设 2026/5/10 2:30:41

基于Stream Chat构建AI聊天助手:完整技术栈与实时对话实现

1. 项目概述:一个为AI聊天助手提供完整技术栈的示例库如果你正在为你的应用(无论是移动端还是Web端)集成一个类似ChatGPT或Claude的智能聊天助手,并且希望它具备流畅的实时对话体验、完整的对话历史,以及一个开箱即用、…

作者头像 李华
网站建设 2026/5/10 2:30:39

协同开发环境一致性难题:轻量级上下文同步工具的设计与实战

1. 项目概述:一个被低估的协同开发“利器”在团队协作开发中,我们常常会遇到一个看似微小却极其恼人的问题:不同开发者、不同机器、甚至不同时间点,项目运行环境或配置的细微差异,导致“在我机器上是好的”这种经典甩锅…

作者头像 李华
网站建设 2026/5/10 2:27:32

GHPT:基于记忆与规划的智能代码生成框架深度解析

1. 项目概述:当代码生成器遇上“记忆”与“规划”如果你和我一样,长期在代码生成、自动化脚本编写这类场景里摸爬滚打,那你肯定对GitHub Copilot、ChatGPT这类工具又爱又恨。爱的是它们确实能极大提升效率,一个简单的注释就能生成…

作者头像 李华
网站建设 2026/5/10 2:26:19

AI代码助手上下文增强:基于分布式内存缓存的Cursor外部记忆系统

1. 项目概述:当AI代码助手遇上分布式内存缓存如果你和我一样,日常重度依赖Cursor这类AI驱动的代码编辑器,那你肯定遇到过这样的场景:正和AI助手聊得火热,讨论一个复杂的架构设计,突然它“卡壳”了&#xff…

作者头像 李华