当前位置: 首页 > news >正文

Ascend C算子开发(入门)—— 什么是算子?

在这里插入图片描述
在这里插入图片描述

文章目录

    • Ascend C算子开发(入门)—— 什么是算子?
        • 一、从人工智能到算子
          • 1.1 人工智能的四个层面
          • 1.2 人工智能之三大流派
          • 1.3 算子、神经元、神经网络
        • 二、算子的基本概念
          • 2.1 算子在数学中的定义:
          • 2.2 算子基本概念 —— 总览
          • 2.3 算子基本概念——Tensor
          • 2.4 算子基本概念——Format
          • 2.5 算子基本概念——Axis
        • 三、算子开发的问题与挑战

Ascend C算子开发(入门)—— 什么是算子?

一、从人工智能到算子
1.1 人工智能的四个层面

在这里插入图片描述

  • 计算智能 => 感知智能 => 认知智能 => 行动智能
1.2 人工智能之三大流派

在人工智能的研究过程中,诞生了很多不同的流派,归纳起来,可分为符号主义、行动主义以及连接主义三大流派。

  • 符号主义:指的是万事万物都可以用符号勇表示,并且一切都可以基于符号进行一些列的计算,并用一个系统表示出来。

  • 行动主义:以行为动作的感知与控制研究为代表,采用进化的方式模拟人类行为活动中表现的智能(例如强化学习、遗传算法等)。

  • 连接主义:以人工神经网络研究为代表,核心方法是构建人工神经网络及人工神经网络间连接机制的学习算法,实现对大脑功能的模拟。(仿生)

1.3 算子、神经元、神经网络

这些概念是基于连接主义的核心思想:认知功能和智能行为是由大量简单单元(类似于神经元)的连接和相互作用所产生的。所拓展的。

  • 神经元

在神经网络中,神经元被视为简单的神经单元,每个单元接受输入并且产生输出。人工神经元模拟了生物神经元的基本功能,如输入加权求和和激活。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • 算子

算子是用于计算神经元输入与输出之间关系的工具,它们执行如加权求和、激活函数、卷积等操作,这些操作共同作用,实现信息在神经元之间的传播和转换。

  • 神经网络

它由大量相互连接的神经元组成,这些神经元的连接方式和强度(即权重)决定了网络的整体行为和功能。

在神经网络中,边表示数据的流向,而节点表示数据的处理,数据的处理可能是数学公式、也可能是纯粹的计算机处理。我们称每一个数据处理或者计算的节点成为算子。

在这里插入图片描述

在这里插入图片描述

二、算子的基本概念
2.1 算子在数学中的定义:

一个函数空间到函数空间上的映射O:X->X

2.2 算子基本概念 —— 总览

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

2.3 算子基本概念——Tensor

在这里插入图片描述
在这里插入图片描述

对于算子的形状(shape),小括号中有多少个数字,就代表是多少维的张量;小括号中的数字表示该维度下包含的元素数量。

在这里插入图片描述

3表示每个像素点由3种颜色表示。

2.4 算子基本概念——Format

在这里插入图片描述

内存中并不存在张量的维度信息,数据在内存中只能线性存储。此处以卷积神经网络为例,通常分为四个维度进行存储:

  • N:Batch数量,例如图像的数目。
  • H:特征图高度,即垂直高度方向的像素个数。
  • W:特征图宽度,即水平宽度方向的像素个数。
  • C:特征图通道,例如彩色RGB图像的Channels为3.

不同深度学习框架会按照不同的顺序存储特征图数据。

在这里插入图片描述

数据的遍历方式是从低维向高维进行遍历,

如果数据的遍历是以NCHW的顺序进行遍历,那么遍历顺序应为W轴->H轴->C轴->N轴。

先遍历W轴,再遍历H轴:

R00,R01,R02,R10,R11,R12,R20,R21,R22

再遍历下一个Channel:

G00,G01,G02,G10,G11,G12,G20,G21,G22

把所有Channel遍历完结束。

2.5 算子基本概念——Axis

在这里插入图片描述

三、算子开发的问题与挑战

开发者在实现算子的时候需考虑如下因素:

  • 功能逻辑如何实现
  • 如何适配对应硬件
  • 如何处理不同大小的输入
  • 如何处理不同类型的输入
  • 如何保证算子运行的性能
  • 如何优化算子的数学公式

在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 海外新闻稿发布对区块链项目具有深远的影响
  • .NET WPF 抖动动画
  • 面试官让简述一下elasticsearch
  • 使用 Nginx 部署 Vue.js 项目详解
  • 恺英网络:有业绩,无“游戏”
  • C语言典型例题56
  • 【SQL基础】【leetcode】SQL50题
  • Java算法之插入排序(Insertion Sort)
  • 基于STM32的RFID高速收费系统(论文+源码+实物)
  • Github 2024-08-28 C开源项目日报 Top9
  • 基于python的足球比赛数据及可视化 python 足球预测
  • Unet改进11:在不同位置添加MLCA||轻量级的混合本地信道注意机制
  • Xaas傻傻分不清楚,看完这个你就明白了!
  • pgloader 是什么及如何使用?
  • Python数据清洗基础
  • [译]前端离线指南(上)
  • 【翻译】babel对TC39装饰器草案的实现
  • Android优雅地处理按钮重复点击
  •  D - 粉碎叛乱F - 其他起义
  • happypack两次报错的问题
  • Js实现点击查看全文(类似今日头条、知乎日报效果)
  • js中forEach回调同异步问题
  • MySQL的数据类型
  • PAT A1017 优先队列
  • Spark VS Hadoop:两大大数据分析系统深度解读
  • vue中实现单选
  • 测试如何在敏捷团队中工作?
  • 构造函数(constructor)与原型链(prototype)关系
  • 如何抓住下一波零售风口?看RPA玩转零售自动化
  • 适配iPhoneX、iPhoneXs、iPhoneXs Max、iPhoneXr 屏幕尺寸及安全区域
  • 原创:新手布局福音!微信小程序使用flex的一些基础样式属性(一)
  • 在electron中实现跨域请求,无需更改服务器端设置
  • 自制字幕遮挡器
  • 微龛半导体获数千万Pre-A轮融资,投资方为国中创投 ...
  • 移动端高清、多屏适配方案
  • #QT 笔记一
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (三)centos7案例实战—vmware虚拟机硬盘挂载与卸载
  • (十) 初识 Docker file
  • (转)VC++中ondraw在什么时候调用的
  • (转)关于多人操作数据的处理策略
  • .NET CF命令行调试器MDbg入门(一)
  • .Net Core中的内存缓存实现——Redis及MemoryCache(2个可选)方案的实现
  • .NET 依赖注入和配置系统
  • .NET/C# 项目如何优雅地设置条件编译符号?
  • .NET成年了,然后呢?
  • .NET运行机制
  • .sdf和.msp文件读取
  • @autowired注解作用_Spring Boot进阶教程——注解大全(建议收藏!)
  • @RequestBody的使用
  • @拔赤:Web前端开发十日谈
  • [AHK V2]鼠标悬停展开窗口,鼠标离开折叠窗口
  • [Angular] 笔记 21:@ViewChild
  • [AutoSar]状态管理(五)Dcm与BswM、EcuM的复位实现
  • [BSGS算法]纯水斐波那契数列