首页
Python
Java
前端
数据库
Linux
Chatgpt专题
开发者工具箱
算子专题
spark算子集锦
Spark 是大数据领域的一大利器,花时间总结了一下 Spark 常用算子,正所谓温故而知新。 Spark 算子按照功能分,可以分成两大类:transform 和 action。Transform 不进行实际计算,是惰性的,action 操作才进行实际的计算。如何区分两者?看函数返回,如果输入到输出都是RDD类型,则认为是transform操作,反之为action操作。 准备 准备阶段包括s
阅读更多...
OrangePi AIpro 香橙派 昇腾 Ascend C 算子开发 与 调用 - Tiling实现 2
OrangePi AIpro 香橙派 昇腾 Ascend C 算子开发 与 调用 - Tiling实现 2 flyfish 前置知识 1 前置知识 2 Host侧CPU和Device侧NPU的主要区别 不同的硬件资源 CPU是为了执行通用计算任务而设计的,但在处理大量的并行计算(如矩阵乘、批数据处理)时效率不高。NPU是为了加速机器学习和深度学习任务而设计的,它擅长执行大量的并行计算。N
阅读更多...
fpga图像处理实战-边缘检测 (Roberts算子)
Roberts算子 Roberts算子是一种用于边缘检测的算子,主要用于图像处理中检测图像的边缘。它是最早的边缘检测算法之一,以其计算简单、速度快而著称。Roberts算子通过计算图像像素在对角方向的梯度来检测边缘,从而突出图像中灰度变化最剧烈的部分。 原理 Roberts算子通过对图像应用两个2x2的卷积核(也称为掩模或滤波器)来计算图像在水平和垂直
阅读更多...
图像边缘检测技术详解:利用OpenCV实现Sobel算子
图像边缘检测技术详解:利用OpenCV实现Sobel算子 前言Sobel算子的原理代码演示结果展示结语 前言 在数字图像处理的广阔领域中,边缘检测技术扮演着至关重要的角色。无论是在科学研究、工业自动化,还是在日常生活中的智能设备中,我们都需要从图像中提取有用的信息。边缘,作为图像中亮度变化最显著的地方,为我们提供了识别和理解图像内容的关键线索。因此,边缘检测算法成为了计算机视
阅读更多...
OrangePi AIpro 香橙派 昇腾 Ascend C 算子开发 与 调用 - Tiling实现
OrangePi AIpro 香橙派 昇腾 Ascend C 算子开发 与 调用 - Tiling实现 flyfish 前置知识 基于Kernel直调工程的算子开发流程图 其中有一个Tiling实现 什么是Tiling、Tiling实现 计算API,包括标量计算API、向量计算API、矩阵计算API,分别实现调用Scalar计算单元、Vector计算单元、Cube计算单元执行计算的功
阅读更多...
深度学习常用算子
深度学习常用算子 算子功能ReluReLU(x)=max(0,x)LeakyReluLeakyRelu(x) = (x >= 0 ? x : x*negative_slope)Relu6LeakyRelu(x) = max(max(x, 0), 6)Tantanh(x)=(exp(x)-exp(-x))/(exp(x)+exp(-x))sigmoidsigmoid(x) = 1.
阅读更多...
计算机 软件 什么是算子
算法(algorithm)是为了达到某个目标,实施的一系列指令的过程,而指令包含算子(operator)和操作数(operand)。 算子:operator, 简单说来就是进行某种“操作“,动作。算法中的一个函数、几行可以重复使用的代码、一个数学中的平方操作,这些都可以认为是算子 操作数:operand,被操作的对象,称之为操作数。 广义的讲,对任何函数进行某一项操作都可以
阅读更多...
Halcon提取边缘线段lines_gauss 算子
Halcon提取边缘线段lines_gauss 算子 edges_color_sub_pix和edges_sub_pix两个算子使用边缘滤波器进行边缘检测。还有一个常用的算子lines_gauss算子,也可以用于提取边缘线段,它的鲁棒性非常好,提取出的线段类型是亚像素精度的XLD轮廓。其原型如下: lines gauss(Image : Lines : Sigma, Low, High, Li
阅读更多...
Sobel算子,Scharr算子和Laplacian算子
图像边缘检测大幅度地减少了数据量,并且剔除了可以认为不相关的信息,保留了图像重要的结构属性。有许多方法用于边缘检测, 绝大部分可以划分为两类:基于搜索和基于零穿越。 基于搜索:通过寻找图像一阶导数中的最大值来检测边界,然后利用计算结果估计边缘的局部方向,通常采用梯度的方向,并利用此方向找到局部梯度模的最大值,代表算法是Sobel算子和Scharr算子 基于零穿越:通过寻找图像二阶导数零穿越来寻找边
阅读更多...
Flink1.14.* 各种算子在StreamTask控制下如何调用的源码
前言:一、StreamTask执行算子的生命周期二、 Source的streamTask用的是SourceStreamTask三、基础转换操作,窗口用的是OneInputStreamTask1、初始化OneInputStreamTask2、StreamTask运行invoke调用的是StreamTask的processInput方法3、从缓冲区获取数据放入到内存中4、调用算子的proce
阅读更多...
OrangePi AIpro 香橙派 昇腾 Ascend C算子开发 - HelloWorld
OrangePi AIpro 香橙派 昇腾 Ascend C算子开发 - HelloWorld flyfish Ascend C算子编程是SPMD(Single-Program Multiple-Data)编程 假设,从输入数据到输出数据需要经过3个阶段任务的处理(T1、T2、T3)。如下图所示,SPMD会启动一组进程,并行处理待处理的数据。对待处理数据切分,把切分后数据分片分发给不同进程处理
阅读更多...
Ascend C算子开发(入门)—— 算子开发环境搭建
文章目录 Ascend C算子开发(入门)—— 算子开发环境搭建在CPU上部署开发环境准备工作步骤配置环境变量配置pip源pip安装依赖包安装开发套件包添加配置验证是否安装成功下载samples代码包测试算子 Ascend C算子开发(入门)—— 算子开发环境搭建 安装包解读 Ascend-cann-功能-版本-平台.tar/run nnrt 推理amct
阅读更多...
Ascend C算子开发(入门)——什么是Ascend C?
Ascend C算子开发(入门)——什么是Ascend C? 一、CANN与Ascend C CANN的全称是Computer Architecture For Neural Network,适用于为神经网络加速计算,Ascend C是主要编程模块,可实现图开发、算子开发、应用开发等,MindStudio是全流程开发的工具链。 二、昇腾(Ascend)AI处理器 进程运行
阅读更多...
边缘检测算子
边缘是指图像中像素值突变的地方。图像的显著变化部位通常反映了图像的重要特征。 边缘检测方法可以大致分为两大类:基于查找和基于零穿越。基于查找的方法是通过寻找图像中一阶导数中的最大和最小值来检测边缘,通常将边界定位在梯度值最大的方向。基于零穿越的方法是通过寻找图像二阶导数零穿越来寻找边界。 一阶微分算子 一阶微分边缘算子也称为梯度边缘算子,它是利用图像在边缘处的阶跃性,即图像梯度在边缘取得极大
阅读更多...
拉普拉斯算子从笛卡尔坐标系到圆柱坐标系下的推导过程
这段时间推导圆膜振动方程的时候,需要将振动方程从笛卡尔坐标系转换到圆柱坐标系。虽然这个结果书上都有了,但是不满足于直接给出的结果,想自己推导一下。于是就有了下面的内容。总结起来:就是将笛卡尔坐标系下的拉普拉斯算子定义式和圆柱坐标系下拉普拉斯算子定义式之间的关系通过坐标转换对应起来,然后利用待定系数法求解相应的系数就可以了。话不多说,上干货。 笛卡尔坐标系下的拉普拉斯算子定义为: (2-1)
阅读更多...
Ascend C算子性能优化实用技巧01——流水优化
Ascend C是CANN针对算子开发场景推出的编程语言,原生支持C和C++标准规范,兼具开发效率和运行性能。使用Ascend C,开发者可以基于昇腾AI硬件,高效的实现自定义的创新算法。 目前已经有越来越多的开发者使用Ascend C,我们将通过几期“Ascend C算子性能优化”专题分享,围绕开发者最为关心的算子性能优化环节,介绍Ascend C算子常用的优化技巧,帮助开发者自主构建出更优
阅读更多...
图像腐蚀算子SE的选取
功能:用于膨胀腐蚀及开闭运算等操作的结构元素对象。 用法:SE = strel(shape,parameters) 创建由指定形状shape对应的结构元素。其中shape的种类有 arbitrary' 'pair' 'diamond' 'periodicline' 'disk' 'rectangle' 'line'
阅读更多...
局部凸空间及其在算子空间中的应用之三
局部凸空间及其在算子空间中的应用之三 前言一、豪斯多夫局部凸空间的例子二、线性算子的连续性刻画总结 数学是一种艺术,如同诗歌一样,它寻求美和简洁。—— André Weil 前言 本文继续该系列的上一篇文章,介绍一个特殊而重要的豪斯多夫局部凸空间,并证明其上的结论。然后我们给出了线性算子的连续性刻画的几个重要结论,方便后续文章的引用。 一、豪斯多夫局部凸空间的例子
阅读更多...
Flink入门(五)--Flink算子
Map DataStream → DataStream 一个接受一个元素并产生一个元素的函数。 示例 dataStream.map { x => x * 2 } FlatMap DataStream → DataStream 一个接受一个元素并产生零个、一个或多个元素的函数。 例如 dataStream.flatMap { str => str.spli
阅读更多...
局部凸空间及其在算子空间中的应用之二
局部凸空间及其在算子空间中的应用之二 前言一、局部凸空间及其性质总结 年轻人应该学习数学,因为这是唯一能够教会他们如何思考的学科。——John von Neumann 前言 在现代数学尤其是泛函分析领域中,局部凸空间作为一种重要的拓扑向量空间,在理论和应用方面都占据着极其关键的地位。它们不仅是研究无限维空间中各种数学对象的基础框架,而且还在物理学、经济学、工程学等多个领域有
阅读更多...
理解Spark的RDD算子
什么是Spark的算子呢?说简单一些就是Spark内部封装了一些处理RDD数据的函数方法。 其中算子又分为两部分: Transformation 与 Actions Transformation(转换):Transformation属于延迟计算,当一个RDD转换成另一个RDD时并没有立即进行转换,仅仅是记住了数据集的逻辑操作 Action(执行):触发Spark作业的运行,真
阅读更多...
Pytorch添加自定义算子之(12)-开闭原则设计tensorrt和onnxruntime推理语义分割模型
一、开闭原则 开闭原则是SOLID原则中的一个,指的是尽量使用开放扩展,关闭修改的设计原则。 在C++中如何使用开闭原则导出动态库,可以按照以下步骤进行: 定义抽象基类:定义动态库中的抽象基类,该基类应该封装可扩展的接口。 实现派生类:实现基类的派生类,这些派生类将封装对应的扩展接口。 将派生类编译为动态库:将所有派生类编译为动态库(DLL)。 使用动态库:在使用动态库的代码中,只需包
阅读更多...
spark 大型项目实战(四十八):troubleshooting之解决算子函数返回NULL导致的问题
在算子函数中,返回null // return actionRDD.mapToPair(new PairFunction<Row, String, Row>() {//// private static final long serialVersionUID = 1L;// // @Override//
阅读更多...
spark 大型项目实战(四十三):算子调优之reduceByKey本地聚合介绍
下面给出一个图解: map端的task是不断的输出数据的,数据量可能是很大的。 但是,其实reduce端的task,并不是等到map端task将属于自己的那份数据全部写入磁盘文件之后,再去拉取的。map端写一点数据,reduce端task就会拉取一小部分数据,立即进行后面的聚合、算子函数的应用。 每次reduece能够拉取多少数据,就由buffer来决定。因为拉取过来的数据,都是先放在b
阅读更多...
spark 大型项目实战(四十二):算子调优之reduceByKey本地聚合介绍
下面看一段简单的world count val lines = sc.textFile("hdfs://")val words = lines.flatMap(_.split(" "))val pairs = words.map((_, 1))val counts = pairs.reduceByKey(_ + _)counts.collect() reduceByKey,相较于普通
阅读更多...
spark 大型项目实战(四十一):算子调优之使用repartition解决Spark SQL低并行度的性能问题
并行度:之前说过,并行度是自己可以调节,或者说是设置的。 1、spark.default.parallelism 2、textFile(),传入第二个参数,指定partition数量(比较少用) 咱们的项目代码中,没有设置并行度,实际上,在生产环境中,是最好自己设置一下的。官网有推荐的设置方式,你的spark-submit脚本中,会指定你的application总共要启动多少个executo
阅读更多...