CN112734040A - 一种嵌入式人工智能计算框架及应用方法 - Google Patents
一种嵌入式人工智能计算框架及应用方法 Download PDFInfo
- Publication number
- CN112734040A CN112734040A CN202110089027.2A CN202110089027A CN112734040A CN 112734040 A CN112734040 A CN 112734040A CN 202110089027 A CN202110089027 A CN 202110089027A CN 112734040 A CN112734040 A CN 112734040A
- Authority
- CN
- China
- Prior art keywords
- layer
- interface
- intelligent
- network
- model
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 69
- 238000013473 artificial intelligence Methods 0.000 title claims abstract description 68
- 238000012549 training Methods 0.000 claims abstract description 54
- 238000004364 calculation method Methods 0.000 claims abstract description 43
- 238000011161 development Methods 0.000 claims abstract description 21
- 230000006870 function Effects 0.000 claims description 25
- 230000015654 memory Effects 0.000 claims description 17
- 238000010276 construction Methods 0.000 claims description 14
- 230000008569 process Effects 0.000 claims description 14
- 238000005457 optimization Methods 0.000 claims description 13
- 238000003062 neural network model Methods 0.000 claims description 11
- 238000012360 testing method Methods 0.000 claims description 10
- 238000013528 artificial neural network Methods 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 7
- 230000000977 initiatory effect Effects 0.000 claims description 4
- 230000001419 dependent effect Effects 0.000 abstract description 4
- 238000004422 calculation algorithm Methods 0.000 description 13
- 238000006243 chemical reaction Methods 0.000 description 9
- 238000013461 design Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000013135 deep learning Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 239000011159 matrix material Substances 0.000 description 5
- 238000011176 pooling Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000001133 acceleration Effects 0.000 description 4
- 230000008676 import Effects 0.000 description 4
- 238000010801 machine learning Methods 0.000 description 4
- 238000013508 migration Methods 0.000 description 4
- 230000005012 migration Effects 0.000 description 4
- 230000003044 adaptive effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000011423 initialization method Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000011478 gradient descent method Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008707 rearrangement Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000007787 long-term memory Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000002945 steepest descent method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000002054 transplantation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/10—Interfaces, programming languages or software development kits, e.g. for simulating neural networks
- G06N3/105—Shells for specifying net layout
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
- G06F9/449—Object-oriented method invocation or resolution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
- G06N5/046—Forward inferencing; Production systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种嵌入式人工智能计算框架及应用方法,属于计算机和人工智能技术领域,所述计算框架包括第一接口层,为外部接口,提供前端接口或用户开发接口,用于为应用服务提供统一调用接口;智能层,与所述第一接口层相接,提供用于构建智能模型以及将构建的智能模型进行训练和推理的接口和核心模块;第二接口层,为内部接口,与所述智能层相接,用于为计算任务提供调用硬件层进行数据计算的接口;硬件层,与所述第二接口层相接,用于对所述智能层所涉及的数据通过系统提供的硬件进行计算。本发明提供所述嵌入式人工智能计算框架,解决现有技术中开源框架面临的第三方依赖严重、版本难以控制、代码无法自主可控等问题。
Description
技术领域
本发明涉及计算机和人工智能技术领域,尤其涉及一种嵌入式人工智能计算框架及应用方法。
背景技术
人工智能算法在各个领域的广泛应用带来了各种智能计算框架技术的快速发展,无论是学术界还是工业界都推出了相应的智能计算框架,支持的硬件架构和软件平台也越来越多。目前,机器学习智能算法计算框架主要有:TensorFlow、PyTorch、Caffe、MXNet、CNTK、Theano等。
当前开源框架面临着第三方依赖严重,版本难以控制,代码无法自主可控,阻碍后续性能优化和适应性改进,同时,智能计算框架大多面向针对服务器、PC端等平台,模型训练和推理依赖大量的计算资源,对硬件平台依赖严重,尤其无法给国产自主可控软硬件平台提供良好的支持。基于嵌入式平台提供自主可控的智能计算的计算框架,并提供智能模型的训练和推理变得迫切。
发明内容
本发明提供一种嵌入式人工智能计算框架及应用方法,用以解决现有技术中开源框架面临的第三方依赖严重、版本难以控制、代码无法自主可控等问题,并且基于所述嵌入式人工智能计算框架,实现智能模型的构建以及将所述智能模型进行训练和推理,得到所述智能模型的推理结果。
本发明提供一种嵌入式人工智能计算框架,包括:
第一接口层,为外部接口,提供前端接口或用户开发接口,用于为应用服务提供统一调用接口;
智能层,与所述第一接口层相接,提供用于构建智能模型以及将构建的智能模型进行训练和推理的接口和核心模块;
第二接口层,为内部接口,与所述智能层相接,用于为计算任务提供调用硬件层进行数据计算的接口;
硬件层,与所述第二接口层相接,用于对所述智能层所涉及的数据通过系统提供的硬件进行计算。
根据本发明提供的一种嵌入式人工智能计算框架,所述第一接口层包括C++编程语言接口和Python编程语言接口。
根据本发明提供的一种嵌入式人工智能计算框架,所述智能层包括网络层、核心模块以及底层数据计算接口,其中:
网络层,用于构建智能模型,包括智能模型的具体层,所述具体层对应神经网络的网络层结构;
核心模块,与所述网络层相接,包括构建智能模型的类,用于对所述智能模型构建、训练和推理所涉及的功能的定义,所述定义包括对应网络层接口定义、网络参数接口定义以及优化器接口定义,所述网络层的每一个具体层均由核心模块的一个类进行实现;
底层数据计算接口,分别与所述网络层与所述第二接口层连接,用于定义所述网络层所用到的数据计算的算子库。
根据本发明提供的一种嵌入式人工智能计算框架,所述第二接口层包括开放运算语言接口和标准C/C++实现接口,通过调用所述开发运算语言接口使用硬件层的GPU进行数据计算,通过所述标准C/C++实现接口调用硬件层的CPU进行数据计算。
本发明还提供一种基于上述所述的嵌入式人工智能计算框架的应用方法,包括:
利用所述嵌入式人工智能计算框架构建智能模型;
通过预设模型配置文件,定义网络模型的结构及参数,并通过读取预设模型配置文件,能够对所述智能模型进行训练;
经过训练后的所述智能模型对输入的测试数据进行推理,输出所述智能模型的推理结果。
根据本发明提供的一种嵌入式人工智能计算框架的应用方法,所述利用所述嵌入式人工智能计算框架构建智能模型,包括:
根据参数配置文件中对网络结构的描述,使用网络层类型注册模块逐层构造出对应的神经网络模型的网络结构中包含的网络层对象;
将构造出的网络层对象按照定义顺序放入向量结构,并发起对所述智能模型的可学习参数的随机初始化操作、由前向推理与反向求梯度组成的训练优化操作。
根据本发明提供的一种嵌入式人工智能计算框架的应用方法,所述输入可学习参数对所述智能模型进行训练,包括:
从网络结构包含的每个具体层对象中提取出可学习参数对象,通过随机数生成方法对所述可学习参数进行初始化操作;
根据设定学习率、动量值、权重衰减值和从外部接口出入的参数梯度值对所述智能模型中可学习参数进行基于随机梯度下降的更新操作,以完成对所述可学习参数的训练。
根据本发明提供的一种嵌入式人工智能计算框架的应用方法,所述输入可学习参数对所述智能模型进行训练,包括:
在训练过程中,调用所述第二接口层的开发运算语言接口使用硬件层的GPU对所述智能模型需要计算的数据进行计算。
根据本发明提供的一种嵌入式人工智能计算框架的应用方法,所述经过训练后的所述智能模型对输入的测试数据进行推理,输出所述智能模型的推理结果,包括:
加载网络定义文件,实现网络对象的生成和智能模型的内存分配;
通过Net类加载预训练的模型文件,按照层对象名称将参数读入网络层对象;
由Net类调用Forward接口发起前向推理计算,输出对应数据的预测结果,以得到所述智能模型的推理结果。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述嵌入式人工智能计算框架的应用方法的步骤。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述嵌入式人工智能计算框架的应用方法的步骤。
本发明提供的一种嵌入式人工智能计算框架、应用方法及电子设备,实现了智能模型的构建以及将所述智能模型进行训练和推理,得到所述智能模型的推理结果。
进一步的,所述计算框架的底层采用C++语言进行开发,使得在训练所述智能模型的数据计算更加高效,并且所述计算框架的底层使用同一接口,针对不同硬件计算平台的适应性好。
进一步的,所述计算框架是采取层次架构设计,每一层对应单一功能,有利于迭代优化,而且采用灵活可扩展的API(英文:Application Programming Interface,中文:应用程序接口)接口设计,可以面向应用进行拓展开发相应的网络层、智能模型等,也可以根据应用程序需求,对所述计算框架进行有效裁剪。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的嵌入式人工智能计算框架的架构图;
图2是本发明提供的可扩展API接口的原理图;
图3是本发明提供的核心代码目录图;
图4是本发明提供的对智能模型进行训练和推理的流程示意图;
图5是本发明智能模型训练和推理的流程图;
图6是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
以下将针对现有技术提供的人工智能的框架进行描述:
现有技术中机器学习智能算法计算框架主要有:TensorFlow、PyTorch、Caffe、MXNet、CNTK、Theano等。以下对这些计算框架进行描述。
TensorFlow是谷歌的第二代机器学习系统,也是当今比较流行的深度学习框架,TensorFlow拥有大量的开发者,有详细的说明文档、可查询资料多,支持多GPU、分布式训练,跨平台运行能力强,同时还支持强化学习和其他算法的工具,自带可视化工具,能够让用户实时监控观察训练过程。TensorFlow的缺点是频繁变动的接口、接口设计过于晦涩难懂、运行明显比其他框架速度慢。
PyTorch是一款专注于直接处理数组表达式的低级API,其主要优势是:简洁、速度和易用。PyTorch的设计追求最少的封装,尽量避免重复造轮子。其源码只有TensorFlow的十分之一左右,其次PyTorch的灵活性不以速度为代价,在许多评测中,PyTorch的速度表现胜过TensorFlow和Keras等框架,并且PyTorch是所有的框架中面向对象设计的最优雅的一个。
Caffe是一个清晰、高效的深度学习框架,核心语言是C++,它支持命令行、Python和MATLAB接口,既可以在CPU上运行,也可以在GPU上运行。Caffe的优点主要包括:核心程序用C++编写,因此更高效,适合工业界开发,网络结构都是以配置文件形式定义,不需要用代码设计网络。但是Caffe提出较早,目前缺少维护,灵活性和扩展性较差,依赖众多环境。
MXNet是一款设计为效率和灵活性的深度学习框架。其允许混合符号编程和命令式编程,从而最大限度提高效率和生产力。在其核心是一个动态的依赖调度,能够自动并行符号和命令的操作。MXNet有一个图形优化层,使得符号执行速度快,内存使用高效。这个库便携,轻量,而且能够扩展到多个GPU和多台机器。
CNTK是一个统一的计算网络框架,其将深层神经网络描述为一系列通过有向图的计算步骤。在有向图中,每个节点代表一个输入值或一个网络参数,每个边表示在其中的一个矩阵运算。CNTK提供了实现前向计算和梯度计算的算法。CNTK中预定义了很多主流的计算网络结构,用户可以轻松地在开源许可证下扩展节点类型。
Theano是基于Python,是最早的深度学习开源框架。Theano是用于处理多维数组的Python库,适合与其它深度学习库结合起来进行数据探索,高效地解决多维数组的计算问题。其设计的初衷是为了执行深度学习中大规模神经网络算法的运算。所以Theano可以被更好地理解为一个数学表达式的编译器:用符号式语言定义你想要的结果,该框架会对你的程序进行编译,在GPU或CPU中高效运行。
但是上述的集中机器学习智能算法计算框架的特点都是开源框架面临着第三方依赖严重,版本难以控制,代码无法自主可控,阻碍后续性能优化和适应性改进,同时,智能计算框架大多面向针对服务器、PC端等平台,模型训练和推理依赖大量的计算资源,对硬件平台依赖严重,尤其无法给国产自主可控软硬件平台提供良好的支持,因此有必要自主开发一种机器学习智能算法计算框架。
本发明提供一种嵌入式人工智能计算框架及应用方法,用以解决现有技术中开源框架面临的第三方依赖严重、版本难以控制、代码无法自主可控等问题,实现智能模型的构建以及将所述智能模型进行训练和推理,得到所述智能模型的推理结果。
下面结合图1-图6描述本发明所述一种嵌入式人工智能计算框架、应用方法及电子设备。
图1是本发明提供的嵌入式人工智能计算框架的架构图,如图所示。一种嵌入式人工智能计算框架,包括第一接口层101、智能层102、第二接口层103以及硬件层104。
第一接口层101,为外部接口,提供前端接口或用户开发接口,用于为应用服务提供统一调用接口。
可选的,所述第一接口层101包括C++编程语言接口1011和Python编程语言接口1012。通过C++编程语言接口1011和Python编程语言接口1012,用户可以灵活进行智能模型构建,智能模型训练和推理。
本发明提供C++编程语言接口1011和Python编程语言接口1012两种语言接口,可使用优化数据结构存储的方法对智能模型进行存储,并支持智能模型存储格式与ONNX(英文:Open Neural Network Exchange,中文:开放神经网络交换)模型存储格式之间的转换,能够实现基于ONNX格式的模型的导入和导出,从而支持不同类型的智能模型跨框架迁移。
ONNX是一套表示深度神经网络模型的开放格式,由微软和Facebook于2017推出,然后迅速得到了各大厂商和框架的支持,通过短短几年的发展,已经成为表示深度学习模型的实际标准。
智能层102,与所述第一接口层101相接,提供用于构建智能模型以及将构建的智能模型进行训练和推理的接口和核心模块。
可选的,所述智能层102包括网络层1021、核心模块1022以及底层数据计算接口1023,其中:
网络层1021,用于构建智能模型,包括智能模型的具体层,所述具体层对应神经网络的网络层结构,例如卷积层Conv、池化层Pool、激活层ReLU、输出和交叉熵层SoftmaxWithLoss、数据层Data、全连接层FC、长短期记忆层lstm等。
核心模块1022,与所述网络层1021相接,包括构建智能模型的类,比如Layer类、Initializer类、Optimizer类。用于对所述智能模型构建、训练和推理所涉及的功能的定义,所述定义包括对应网络层接口定义、网络参数接口定义以及优化器接口定义,所述网络层的每一个具体层均由核心模块的一个类进行实现,比如Tensor类、Layer类和Net类。上述网络层1021通过继承核心模块1022的Layer类的功能去实现的。
类(Class)是面向对象程序设计(OOP,Object-Oriented Programming)实现信息封装的基础。类是一种用户定义的引用数据类型,也称类类型。每个类包含数据说明和一组操作数据或传递消息的函数。类的实例称为对象。类是可以包含数据成员(常量和字段),函数成员(方法、属性、事件、索引器、运算符、实例构造函数、析构函数和静态构造函数)以及嵌套的类型的数据结构。
可选的,所述类对应的接口可以是核心模块1022自定义的扩展接口,也可以是C++用户自己开发的接口。
底层数据计算接口1023,为底层数据计算接口,分别与所述网络层1021与所述第二接口层103连接,用于定义所述网络层1021所用到的数据计算的算子库。
可选的,所述算子库包含智能算法构建过程中所需要用的数理知识,为智能模型的构建提供数学基础和物理知识支撑。
第二接口层103,为内部接口,与所述智能层102相接,用于为计算任务提供调用硬件层104进行计算的接口。
可选的,所述第二接口层103包括OpenCL(英文:Open Computing Language,中文:开放运算语言)接口1031和标准C/C++实现接口1032,通过调用所述开发运算语言接口使用硬件层的GPU进行数据计算,通过所述标准C/C++实现接口调用硬件层的CPU进行数据计算。
本发明提供了基于OpenCL计算的加速接口,由于在神经网络模型网络层的功能实现需要进行大量向量和矩阵代数运算,通过OpenCL接口,可实现GPU设备上的底层代数运算操作。
OpenCL是第一个面向异构系统通用目的并行编程的开放式、免费标准,也是一个统一的编程环境,便于软件开发人员为高性能计算服务器、桌面计算系统、手持设备编写高效轻便的代码,而且广泛适用于多核心处理器(CPU)、图形处理器(GPU)以及数字信号处理器(DSP)等其他并行处理器。
硬件层104,与所述第二接口层103相接,用于对所述智能层102所涉及的数据通过系统提供的硬件进行计算。
可选的,所述硬件可以是CPU或GPU(英文:Graphics Processing Unit,中文:图形处理器,缩写:GPU)。
通过本发明所述嵌入式人工智能计算框架构建的智能模型,就可以实现对所述智能模型进行训练和推理。首先是通过根据继承核心模块的Layer类实现的一些具体网络层,即通过卷积层、池化层Pooling、激活层Relu、输出层Softmax等构建智能模型,然后基于训练数据集,基于一层层的网络层进行前向计算,然后再使用优化器Optimizer类,具体实现如随机梯度下降(梯度下降是迭代法的一种,可以用于求解最小二乘问题)方法进行反向计算,这就形成了智能模型训练过程。智能模型的推理就是针对测试数据集直接前向计算,得到智能模型的推理结果。
综上所述,本发明所述嵌入式人工智能计算框架,提供一种灵活弱依赖,支撑嵌入式平台上智能模型训练和推理的人工智能计算框架。框架底层采用C++语言进行开发,计算更加高效,采用层次结构进行架构设计、灵活可扩展接口,有利于迭代优化,可拓展可裁剪,适应性更强,底层计算模块使用同一接口,针对不同硬件计算平台只需要完成适应性接口开发,已支持面向嵌入式平台ARM GPU实现基于OpenCL计算加速。并且,上层提供C++和Python两种编程语言的接口,使用优化数据结构存储的方法对模型进行存储,支持模型存储格式与ONNX模型存储格式之间的转换,能够实现基于ONNX格式的模型导入和导出,从而支持模型跨框架迁移。
下面针对本发明所述嵌入式人工智能计算框架的智能层的核心模块通过注册类实现可扩展API接口进行描述。
利用本发明提供的嵌入式人工智智能计算框架,在构建智能模型时有时候需要对核心模块的类进行扩展,以实现更多的扩展功能。图2是本发明提供的可扩展API接口的原理图,如图所示。
本发明所述计算框架采取层次化架构设计,每个层由一个类进行实现,由底层向上依次为:Tensor类、Layer类和Net类。三者之间体现为一种聚合的关系,既Net类管理Layer类,Layer类管理Tensor类,Tensor类管理具体的数据资源,Net类拥有可以导出可学习参数的接口,Initializer类通过该接口对可学习参数进行初始化操作,同时Optimizer类也通过该接口对可学习参数执行优化更新操作。
可选的,本发明还提供灵活可扩展的接口开发,通过核心模块的具体Layer类、Initializer类、Optimizer类来实现,即通过加入一套注册宏将各自对象注册到框架中,通过注册机制,可以实现了灵活可扩展的API接口开发,同时能够进行支持面向应用面向平台适应性的拓展裁剪等。具体的类实现和注册机制如下:
Layer类抽象出了神经网络模型的层定义接口,具体主要定义了Setup、Forward和Backward接口,其中Setup接口用来根据定义网络描述参数对网络层的输入和输出Tensor进行初始化,Forward接口用来实现网络的前向计算,得到用于输出的Tensor对象,Backward接口用于进行网络的反向计算,得到输入和可学习参数的梯度值,为参数更新做准备。每一个具体类型的网络层都通过实现该接口来完成独有的功能,比如卷积层、池化层层、Batch Normalization层等等。
Initializer类定义了初始化网络参数的接口,各个具体类型的参数初始化器通过实现各自接口来完成特定的功能。
Optimizer类定义了优化网络中可学习参数的接口,各种具体类型的优化器可以通过继承Optimizer类实现各自的接口来完成特定的功能,比如随机梯度下降优化器SGD。
Register类实现了注册机制,并通过宏定义来使用该注册功能,在每个具体的Layer类、Initializer类和Optimizer类的实现中,都会通过使用该宏将各个对象注册到框架中,在实际运行时,框架可以通过名称来创建和获取需要的具体实例对象,从而完成对应功能。
图3是本发明提供嵌入式人工智能计算框架的核心代码目录图,如图所示。基于图3提供的核心代码目录可实现智能模型的构建,当构建了智能模型之后,就可以对所述智能模型进行训练和推理。
因此,本发明提供的嵌入式人工智能计算框架的底层开发是采用C++语言,计算更加高效,更加适合工程开发;
同时,底层计算模块(即底层数据计算接口1023)使用统一接口,针对不同硬件计算平台只需实现该接口适应性移植,比如针对嵌入式平台ARM GPU,实现基于OpenCL加速接口。
并且,本发明提供的嵌入式人工智能计算框架,采用层次架构设计,每一层对应单一功能、利于迭代优化。采用灵活可扩展的API接口设计,可以面向应用进行拓展开发相应的网络层、优化方法、神经网络模型,也可以根据应用需求,对框架进行有效裁剪,部署于嵌入式平台,提供面向嵌入式平台的智能模型训练和推理。
图4是本发明提供的对智能模型进行训练和推理的流程示意图,如图所示。一种嵌入式人工智能计算框架的应用方法,包括:
步骤401,利用上述所述嵌入式人工智能计算框架构建智能模型。
可选的,所述利用所述嵌入式人工智能计算框架构建智能模型,包括:
根据参数配置文件中对网络结构的描述,使用网络层类型注册模块逐层构造出对应的神经网络模型的网络结构中包含的网络层对象。
将构造出的网络层对象按照定义顺序放入向量结构,并发起对所述智能模型的可学习参数的随机初始化操作、由前向推理与反向求梯度组成的训练优化操作。
步骤402,通过预设模型配置文件,定义网络模型的结构及参数,并通过读取所述预设模型配置文件,能够对所述智能模型进行训练。
可选的,所述输入可学习参数对所述智能模型进行训练,包括:
从网络结构包含的每个具体层对象中提取出可学习参数对象,通过随机数生成方法对所述可学习参数进行初始化操作。
可选的,所述随机数生成方法包括常数法和Xavier算法。Xavier初始化方法是一种很有效的神经网络初始化方法。
根据设定学习率、动量值、权重衰减值和从外部接口出入的参数梯度值对所述智能模型中可学习参数进行基于随机梯度下降的更新操作,以完成对所述可学习参数的训练。
并且对所述智能模型进行训练的过程中,可同时调用所述第二接口层的开发运算语言接口使用硬件层的GPU对所述智能模型需要计算的数据进行计算。
可选的,在网络训练过程中,存在多个卷积层和全连接层,这些层的功能实现需要进行大量向量和矩阵代数运算,以卷积层为例,当数据进入卷积层后,首先使用im2col(im2col是一种用来处理矩阵的算法,常用在卷积操作中)算法根据卷积核尺度和通道数进行数据重排,用来增强数据在内存中的连续性,然后将待计算数据通过OpenCL接口复制到GPU设备的存储单元上,并将需要进行计算的数据绑定到卷积kernel核函数(核函数是用来计算映射到高维空间之后的内积的一种简便方法)上,最后调用该kernel核函数,实现在GPU设备上的卷积预算,并返回计算结果。
步骤403,经过训练后的所述智能模型对输入的测试数据进行推理,输出所述智能模型的推理结果。
可选的,所述经过训练后的所述智能模型对输入的测试数据进行推理,输出所述智能模型的推理结果,包括:
加载网络定义文件,实现网络对象的生成和智能模型的内存分配。
通过Net类加载预训练的模型文件,按照层对象名称将参数读入网络层对象。
由Net类调用Forward接口发起前向推理计算,输出对应数据的预测结果,以得到所述智能模型的推理结果。
由此可知,上述对所述智能模型进行训练和推理的过程是:
计算框架中神经网络的训练过程是通过对前向推理和反向计算两个步骤的交替运行实现的,其中前向推理根据不同的网络层类型和输入特征计算输出特征,反向计算传入的梯度数据分别计算出当前层包含的参数梯度和输入数据梯度,每次反向计算技术后,都将根据计算的梯度数据,通过Optimizer类对网络参数进行更新操作。
以下将通过一实施例对利用本发明所述嵌入式人工智能计算框架构建的智能模型进行训练和推理的描述。
图5是本发明智能模型训练和推理的流程图,如图所示。
步骤501,输入ONNX模型文件。
步骤502,通过本发明所述嵌入式人工智能计算框架的模型转换模块对输入的ONNX模型文件进行存储格式转换。
本发明所述嵌入式人工智能计算框架的上层架构提供了C++和Python两种编程语言的接口,使用优化数据结构存储的方法对模型进行存储,支持模型存储格式与ONNX模型存储格式之间的转换,能够实现基于ONNX格式的模型导入和导出,从而支持模型跨框架迁移。
因此,本发明所述嵌入式人工智能计算框架支持ONNX格式转换。所述计算框架提供智能模型存储格式与ONNX模型存储格式之间的转换功能,可将ONNX存储格式转换为框架兼容的模型描述文件和模型数据文件,同时也可以进行反向转换。
步骤503,得到符合本发明所述嵌入式人工智能计算框架的格式的对应智能模型。
可选的,本发明可通过配置文件的方式构建智能模型,构建过程如下:
文件的第一行为该网络的名称,之后的每一行定义神经网络中的一个具体层所包含的参数信息,例如在构建LeNet网络中,该网络共包括9个网络层,其中一个卷积层的定义方式如下:
每个字段的含义为:
以上说明该卷积层拥有一个输入张量和一个输出张量,同时该卷积层是一个可学习层,因此具有两个可学习张量,然后对每个可学习张量定义训练所需要的初始化方法、学习率系数、冲量系数和权重衰减系数,最后定义卷积层必须的kernel数、pad数和stride数。
网络层注册:将已经实现的卷积层、Pooling层、ReLU层、SoftmaxWithLoss层、Data层、全连接层以及他们对应的构造方法以映射的方式注册到智能计算框架中,使用中可以通过层类型名获得对应层的对象。
参数初始化:解析LeNet网络结构定义文件,将文件中的各个层类型名和对应的参数转换为相应的类对象,并对其中成员变量执行填充操作。
网络模型构建:根据参数对象中对网络结构的描述,使用层类型注册模块逐层构造出对应的神经网络模型的网络结构中包含的各网络层对象,并将构造的出的网络层对象按照定义顺序放入向量结构中,然后发起对可学习参数的随机初始化操作和由前向推理与反向求梯度组成的训练优化操作。
步骤504,将转换后的对应的智能模型通过所述计算框架的反序列化模块进行反序列化。
智能模型序列化和存储:本发明所述嵌入式人工智能计算框架使用优化数据结构存储的方法对智能模型进行存储,该方法将智能模型数据指针和数据值分别存储为二进制格式,不需要存储额外的用于描述数据属性的数据结构;同时在数据序列化和反序列化操作中可直接访问数据值,不需要进行解析过程,从而提高预算速度。
步骤505,对所述智能模型进行训练和推理。
从网络结构包含的每个具体层对象中提取出可学习参数对象,通过生成随机数的方法对其维护的参数进行初始化操作,随机数生成方法包括常数法和Xavier算法。在神经网络模型训练过程中,根据设定学习率、动量值、权重衰减值和网络上层传入的参数梯度值对神经网络模型中可学习参数进行基于随机梯度下降的更新操作,完成对参数的训练。
其中,梯度下降法(gradient descent),又名最速下降法(steepest descent)是求解无约束最优化问题最常用的方法,它是一种迭代方法,每一步主要的操作是求解目标函数的梯度向量,将当前位置的负梯度方向作为搜索方向(因为在该方向上目标函数下降最快,这也是最速下降法名称的由来)。梯度下降法特点:越接近目标值,步长越小,下降速度越慢。
计算加速:在对智能模型训练过程中,存在多个卷积层和全连接层,这些层的功能实现需要进行大量向量和矩阵代数运算,以卷积层为例,当数据进入卷积层后,首先使用im2col算法根据卷积核尺度和通道数进行数据重排,用来增强数据在内存中的连续性,然后将待计算数据通过OpenCL接口复制到GPU设备的存储单元上,并将需要进行计算的数据绑定到卷积kernel函数上,最后调用该kernel函数,实现在GPU设备上的卷积预算,并返回计算结果。
模型推理:经过训练的神经网络模型可以应用在具体的任务场景中,对当前任务进行推理。基于自主可控智能计算框架的推理过程,首先加载网络定义文件,实现网络对象的生成和模型的内存分配,然后通过Net类加载预训练的模型文件,按照层对象名称将参数读入网络层对象中,最后由Net类调用Forward接口发起前向推理计算,输出对应数据的预测结果。
步骤506,将训练和推理后的智能模型通过所述计算框架的序列化模块进行序列化,与上述步骤504的执行是相反的。
步骤507,得到与上述步骤503一样格式的智能模型。
步骤508,通过模型转换模块对所述智能模型进行存储格式转换。
步骤509,输出ONNX模型文件。
综上所述,本发明所述嵌入式人工智能计算框架,使用优化数据结构存储的方法对模型进行存储,提供支持模型存储格式与ONNX模型存储格式之间的转换,能够实现基于ONNX格式的模型导入和导出,从而支持模型跨框架迁移。
图6示例了一种电子设备的实体结构示意图,如图6所示,该电子设备可以包括:处理器(processor)610、通信接口(Communications Interface)620、存储器(memory)630和通信总线640,其中,处理器610,通信接口620,存储器630通过通信总线640完成相互间的通信。处理器610可以调用存储器630中的逻辑指令,以执行构建所述嵌入式人工智能计算框架的步骤,所述计算框架包括:
第一接口层,为外部接口,提供前端接口或用户开发接口,用于为应用服务提供统一调用接口;
智能层,与所述第一接口层相接,用于实现构建智能模型以及将构建的智能模型进行训练和推理;
第二接口层,为内部接口,与所述智能层相接,用于为计算任务提供调用硬件层进行数据计算的接口;
硬件层,与所述第二接口层相接,用于对所述智能层所涉及的数据通过系统提供的硬件进行计算。
并基于所述嵌入式人工智能计算框架进行应用,包括构建智能模型并对所述智能模型进行训练和推理,所述应用方法包括:
利用所述嵌入式人工智能计算框架构建智能模型;
输入可学习参数对所述智能模型进行训练;
经过训练后的所述智能模型对输入的测试数据进行推理,输出所述智能模型的推理结果。
此外,上述的存储器630中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的构建所述嵌入式人工智能计算框架的步骤,所述计算框架包括:
第一接口层,为外部接口,提供前端接口或用户开发接口,用于为应用服务提供统一调用接口;
智能层,与所述第一接口层相接,用于实现构建智能模型以及将构建的智能模型进行训练和推理;
第二接口层,为内部接口,与所述智能层相接,用于为计算任务提供调用硬件层进行数据计算的接口;
硬件层,与所述第二接口层相接,用于对所述智能层所涉及的数据通过系统提供的硬件进行计算。
并基于所述嵌入式人工智能计算框架进行应用,包括构建智能模型并对所述智能模型进行训练和推理,所述应用方法包括:
利用所述嵌入式人工智能计算框架构建智能模型;
输入可学习参数对所述智能模型进行训练;
经过训练后的所述智能模型对输入的测试数据进行推理,输出所述智能模型的推理结果。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的构建所述嵌入式人工智能计算框架的步骤,所述计算框架包括:
第一接口层,为外部接口,提供前端接口或用户开发接口,用于为应用服务提供统一调用接口;
智能层,与所述第一接口层相接,用于实现构建智能模型以及将构建的智能模型进行训练和推理;
第二接口层,为内部接口,与所述智能层相接,用于为计算任务提供调用硬件层进行数据计算的接口;
硬件层,与所述第二接口层相接,用于对所述智能层所涉及的数据通过系统提供的硬件进行计算。
并基于所述嵌入式人工智能计算框架进行应用,包括构建智能模型并对所述智能模型进行训练和推理,所述应用方法包括:
利用所述嵌入式人工智能计算框架构建智能模型;
输入可学习参数对所述智能模型进行训练;
经过训练后的所述智能模型对输入的测试数据进行推理,输出所述智能模型的推理结果。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种嵌入式人工智能计算框架,其特征在于,包括:
第一接口层,为外部接口,提供前端接口或用户开发接口,用于为应用服务提供统一调用接口;
智能层,与所述第一接口层相接,提供用于构建智能模型以及将构建的智能模型进行训练和推理的接口和核心模块;
第二接口层,为内部接口,与所述智能层相接,用于为计算任务提供调用硬件层进行数据计算的接口;
硬件层,与所述第二接口层相接,用于对所述智能层所涉及的数据通过系统提供的硬件进行计算。
2.根据权利要求1所述的嵌入式人工智能计算框架,其特征在于,所述第一接口层包括C++编程语言接口和Python编程语言接口。
3.根据权利要求1所述的嵌入式人工智能计算框架,其特征在于,所述智能层包括网络层、核心模块以及底层数据计算接口,其中:
网络层,用于构建智能模型,包括智能模型的具体层,所述具体层对应神经网络的网络层结构;
核心模块,与所述网络层相接,包括构建智能模型的类,用于对所述智能模型构建、训练和推理所涉及的功能的定义,所述定义包括对应网络层接口定义、网络参数接口定义以及优化器接口定义,所述网络层的每一个具体层均由核心模块的一个类进行实现;
底层数据计算接口,分别与所述网络层与所述第二接口层连接,用于定义所述网络层所用到的数据计算的算子库。
4.根据权利要求1所述的嵌入式人工智能计算框架,其特征在于,所述第二接口层包括开放运算语言接口和标准C/C++实现接口,通过调用所述开发运算语言接口使用硬件层的GPU进行数据计算,通过所述标准C/C++实现接口调用硬件层的CPU进行数据计算。
5.一种基于权利要求1-4任一项所述的嵌入式人工智能计算框架的应用方法,其特征在于,包括:
利用所述嵌入式人工智能计算框架构建智能模型;
通过预设模型配置文件,定义网络模型的结构及参数,并通过读取所述预设模型配置文件,能够对所述智能模型进行训练;
经过训练后的所述智能模型对输入的测试数据进行推理,输出所述智能模型的推理结果。
6.根据权利要求5所述的嵌入式人工智能计算框架的应用方法,其特征在于,所述利用所述嵌入式人工智能计算框架构建智能模型,包括:
根据参数配置文件中对网络结构的描述,使用网络层类型注册模块逐层构造出对应的神经网络模型的网络结构中包含的网络层对象;
将构造出的网络层对象按照定义顺序放入向量结构,并发起对所述智能模型的可学习参数的随机初始化操作、由前向推理与反向求梯度组成的训练优化操作。
7.根据权利要求5所述的嵌入式人工智能计算框架的应用方法,其特征在于,所述输入可学习参数对所述智能模型进行训练,包括:
从网络结构包含的每个具体层对象中提取出可学习参数对象,通过随机数生成方法对所述可学习参数进行初始化操作;
根据设定学习率、动量值、权重衰减值和从外部接口出入的参数梯度值对所述智能模型中可学习参数进行基于随机梯度下降的更新操作,以完成对所述可学习参数的训练。
8.根据权利要求5所述的嵌入式人工智能计算框架的应用方法,其特征在于,所述输入可学习参数对所述智能模型进行训练,包括:
在训练过程中,调用所述第二接口层的开发运算语言接口使用硬件层的GPU对所述智能模型需要计算的数据进行计算。
9.根据权利要求5所述的嵌入式人工智能计算框架的应用方法,其特征在于,所述经过训练后的所述智能模型对输入的测试数据进行推理,输出所述智能模型的推理结果,包括:
加载网络定义文件,实现网络对象的生成和智能模型的内存分配;
通过Net类加载预训练的模型文件,按照层对象名称将参数读入网络层对象;
由Net类调用Forward接口发起前向推理计算,输出对应数据的预测结果,以得到所述智能模型的推理结果。
10.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求5所述嵌入式人工智能计算框架的应用方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110089027.2A CN112734040A (zh) | 2021-01-22 | 2021-01-22 | 一种嵌入式人工智能计算框架及应用方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110089027.2A CN112734040A (zh) | 2021-01-22 | 2021-01-22 | 一种嵌入式人工智能计算框架及应用方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112734040A true CN112734040A (zh) | 2021-04-30 |
Family
ID=75593735
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110089027.2A Pending CN112734040A (zh) | 2021-01-22 | 2021-01-22 | 一种嵌入式人工智能计算框架及应用方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112734040A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113298259A (zh) * | 2021-06-10 | 2021-08-24 | 中国电子科技集团公司第十四研究所 | 支持嵌入式平台多核并行的cnn网络推理框架设计方法 |
CN113900509A (zh) * | 2021-09-03 | 2022-01-07 | 重庆科创职业学院 | 一种人工智能计算装置 |
CN114186697A (zh) * | 2021-12-10 | 2022-03-15 | 北京百度网讯科技有限公司 | 基于深度学习框架生成和应用深度学习模型的方法及装置 |
CN114282641A (zh) * | 2022-03-07 | 2022-04-05 | 麒麟软件有限公司 | 一种通用异构加速框架的构建方法 |
CN114707646A (zh) * | 2022-01-26 | 2022-07-05 | 电子科技大学 | 基于远程推理的分布式人工智能实践平台 |
CN115878188A (zh) * | 2023-02-20 | 2023-03-31 | 湖南大学 | 一种基于sve指令集的池化层函数的高性能实现方法 |
WO2023071509A1 (zh) * | 2021-10-25 | 2023-05-04 | 深圳鲲云信息科技有限公司 | 模型编译方法、装置及模型运行系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108881446A (zh) * | 2018-06-22 | 2018-11-23 | 深源恒际科技有限公司 | 一种基于深度学习的人工智能平台系统 |
CN109032671A (zh) * | 2018-06-25 | 2018-12-18 | 电子科技大学 | 一种基于数据并行策略的分布式深度学习方法及系统 |
CN110674935A (zh) * | 2019-09-24 | 2020-01-10 | 中国航空工业集团公司沈阳飞机设计研究所 | 向机载嵌入式平台移植智能算法的方法及智能计算平台 |
CN111258744A (zh) * | 2018-11-30 | 2020-06-09 | 中兴通讯股份有限公司 | 一种基于异构计算的任务处理方法及软硬件框架系统 |
CN111582377A (zh) * | 2020-05-09 | 2020-08-25 | 济南浪潮高新科技投资发展有限公司 | 一种基于模型压缩的边缘端目标检测方法及系统 |
CN111753948A (zh) * | 2020-06-23 | 2020-10-09 | 展讯通信(上海)有限公司 | 模型处理方法及相关设备 |
CN111967368A (zh) * | 2020-08-12 | 2020-11-20 | 广州小鹏车联网科技有限公司 | 一种交通灯识别的方法和装置 |
CN111985495A (zh) * | 2020-07-09 | 2020-11-24 | 珠海亿智电子科技有限公司 | 模型部署方法、装置、系统及存储介质 |
-
2021
- 2021-01-22 CN CN202110089027.2A patent/CN112734040A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108881446A (zh) * | 2018-06-22 | 2018-11-23 | 深源恒际科技有限公司 | 一种基于深度学习的人工智能平台系统 |
CN109032671A (zh) * | 2018-06-25 | 2018-12-18 | 电子科技大学 | 一种基于数据并行策略的分布式深度学习方法及系统 |
CN111258744A (zh) * | 2018-11-30 | 2020-06-09 | 中兴通讯股份有限公司 | 一种基于异构计算的任务处理方法及软硬件框架系统 |
CN110674935A (zh) * | 2019-09-24 | 2020-01-10 | 中国航空工业集团公司沈阳飞机设计研究所 | 向机载嵌入式平台移植智能算法的方法及智能计算平台 |
CN111582377A (zh) * | 2020-05-09 | 2020-08-25 | 济南浪潮高新科技投资发展有限公司 | 一种基于模型压缩的边缘端目标检测方法及系统 |
CN111753948A (zh) * | 2020-06-23 | 2020-10-09 | 展讯通信(上海)有限公司 | 模型处理方法及相关设备 |
CN111985495A (zh) * | 2020-07-09 | 2020-11-24 | 珠海亿智电子科技有限公司 | 模型部署方法、装置、系统及存储介质 |
CN111967368A (zh) * | 2020-08-12 | 2020-11-20 | 广州小鹏车联网科技有限公司 | 一种交通灯识别的方法和装置 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113298259A (zh) * | 2021-06-10 | 2021-08-24 | 中国电子科技集团公司第十四研究所 | 支持嵌入式平台多核并行的cnn网络推理框架设计方法 |
CN113298259B (zh) * | 2021-06-10 | 2024-04-26 | 中国电子科技集团公司第十四研究所 | 支持嵌入式平台多核并行的cnn网络推理框架设计方法 |
CN113900509A (zh) * | 2021-09-03 | 2022-01-07 | 重庆科创职业学院 | 一种人工智能计算装置 |
WO2023071509A1 (zh) * | 2021-10-25 | 2023-05-04 | 深圳鲲云信息科技有限公司 | 模型编译方法、装置及模型运行系统 |
CN114186697A (zh) * | 2021-12-10 | 2022-03-15 | 北京百度网讯科技有限公司 | 基于深度学习框架生成和应用深度学习模型的方法及装置 |
CN114186697B (zh) * | 2021-12-10 | 2023-03-14 | 北京百度网讯科技有限公司 | 基于深度学习框架生成和应用深度学习模型的方法及装置 |
CN114707646A (zh) * | 2022-01-26 | 2022-07-05 | 电子科技大学 | 基于远程推理的分布式人工智能实践平台 |
CN114282641A (zh) * | 2022-03-07 | 2022-04-05 | 麒麟软件有限公司 | 一种通用异构加速框架的构建方法 |
CN114282641B (zh) * | 2022-03-07 | 2022-07-05 | 麒麟软件有限公司 | 一种通用异构加速框架的构建方法 |
CN115878188A (zh) * | 2023-02-20 | 2023-03-31 | 湖南大学 | 一种基于sve指令集的池化层函数的高性能实现方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112734040A (zh) | 一种嵌入式人工智能计算框架及应用方法 | |
US9117176B2 (en) | Round-trip engineering apparatus and methods for neural networks | |
WO2022068623A1 (zh) | 一种模型训练方法及相关设备 | |
Dong et al. | Dnnmark: A deep neural network benchmark suite for gpus | |
EP2825974A1 (en) | Tag-based apparatus and methods for neural networks | |
Khan et al. | MIOpen: An open source library for deep learning primitives | |
CN112148637A (zh) | 用于调谐计算机程序中的循环排序的设备、方法、介质 | |
CN111898636B (zh) | 一种数据处理方法及装置 | |
EP3884435A1 (en) | System and method for automated precision configuration for deep neural networks | |
JP7246447B2 (ja) | モデルトレーニング方法、装置、電子デバイス、記憶媒体、開発システムおよびプログラム | |
CN116384312B (zh) | 一种基于并行异构计算的电路良率分析方法 | |
EP3995950B1 (en) | Method and apparatus of constructing network model for deep learning, device, and storage medium | |
Gadiyar et al. | Artificial Intelligence Software and Hardware Platforms | |
de Prado et al. | Automated design space exploration for optimized deployment of dnn on arm cortex-a cpus | |
CN114490116B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN114662646A (zh) | 实现神经网络的方法和装置 | |
CN116739154A (zh) | 一种故障预测方法及其相关设备 | |
US20240070512A1 (en) | Quantum computing system and method | |
Lohoff et al. | Interfacing neuromorphic hardware with machine learning frameworks-a review | |
US20220121925A1 (en) | Chips supporting constant time program control of nested loops | |
WO2024016894A1 (zh) | 一种神经网络的训练方法以及相关设备 | |
Khan et al. | Deep Learning Tools and Libraries | |
Diep et al. | Chainer-XP: A Flexible Framework for ANNs Run on the Intel® Xeon PhiTM Coprocessor | |
Mohamed et al. | Reconfigurable and Heterogeneous Computing | |
Gao et al. | Comparison and analysis of the open-source frameworks for deep learning |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |