CN112085166B - 一种卷积神经网络模型加速训练方法、装置、电子设备及存储介质 - Google Patents
一种卷积神经网络模型加速训练方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN112085166B CN112085166B CN202010947824.5A CN202010947824A CN112085166B CN 112085166 B CN112085166 B CN 112085166B CN 202010947824 A CN202010947824 A CN 202010947824A CN 112085166 B CN112085166 B CN 112085166B
- Authority
- CN
- China
- Prior art keywords
- data
- queue
- node
- sample data
- creating
- 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.)
- Active
Links
- 238000012549 training Methods 0.000 title claims abstract description 60
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000013527 convolutional neural network Methods 0.000 title claims abstract description 29
- 230000001133 acceleration Effects 0.000 title claims abstract description 25
- 238000004806 packaging method and process Methods 0.000 claims abstract description 13
- 238000004590 computer program Methods 0.000 claims description 11
- 230000008569 process Effects 0.000 abstract description 6
- 238000010801 machine learning Methods 0.000 abstract description 5
- 238000013528 artificial neural network Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 230000008901 benefit Effects 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 230000001419 dependent effect Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005215 recombination Methods 0.000 description 1
- 230000006798 recombination Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000005641 tunneling Effects 0.000 description 1
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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种卷积神经网络模型加速训练方法、装置、电子设备及存储介质,属于机器学习技术领域。该方法通过读取训练数据到内存中,遍历所述文件路径下所有文件名,将文件分批次转化成二进制的样本数据;读取所述样本数据,将所述样本数据打包成mini‑batch张量;创建填充协议缓冲区域,将所述mini‑batch张量输入网络作为输入点,实时获取所述样本数据;创建数据流图节点队列,将所述样本数据填充入卷积神经网络中训练,能够缓解模型训练阶段的流水线读取数据的速度瓶颈,优化数据加速过程中的性能,提高卷积神经网络的训练速度。
Description
技术领域
本发明属于机器学习技术领域,具体地说,涉及一种卷积神经网络模型加速训练方法、装置、电子设备及存储介质。
背景技术
目前基于神经网络设计的算法越来越广泛的应用在计算机建模中,神经网络训练速度的提升也成为人们关注的热点之一。神经网络由一开始的单个神经元,演变了许多模型变种,例如卷积神经网络、循环神经网络和递归神经网络等。神经网络的设计者往往只关注于设计的模型在精度和任务效果上的表现,但在实际的落地应用中,由于神经网络结构复杂,层数变得越来越多,在训练过程中有成百上千的参数需要优化;如现在卷积神经网络的层数往往有几百层,完成一个网络模型的训练时间往往需要十多个小时甚至几天,这极大影响了工作效率。
神经网络的训练大多是在拥有显卡的硬件加速环境执行的。加速训练方式一般分为数据读取加速、网络模型加载阶段的加速和模型的推理输出结果加速三个方面。数据读取量不大的时候,主要是围绕在模型快速读取和推理结果的时效性两个方面。由于,神经网络的算法是需要更大的数据集和更深的网络结构模型才能发挥其强大的算法优势。因此目前的技术都是围绕数据展开的,当数据样本量足够的时候能够弥补算法上的不足。海量样本数据输入读取的效率成为了训练神经网络的一个巨大的瓶颈。传统的数据读取方式是,将数据全部加载到内存中读取。当数据过多的时候内存不能一次加载全部数据,由此衍生出来许多的数据读取方式,其中最常用的就是流水线的读取。传统的流水线数据读取的时会有结构相关、数据相关和控制相关的情况,这些情况制约着流水线的性能。
发明内容
、要解决的问题
针对现有的卷积神经网络模型加速过程,采用传统的流水线数据读取,受到其结构、数据控制等相关因素影响,导致卷积神经网络的加速效果不佳的问题。本发明提供的一种卷积神经网络模型加速训练方法和装置,能够缓解模型训练阶段的流水线读取数据的速度瓶颈,优化数据加速过程中的性能,提高卷积神经网络的训练速度。
、技术方案
为解决上述问题,本发明采用如下的技术方案。
本发明第一方面提供一种卷积神经网络模型加速训练方法,包括如下步骤:
S102:读取训练数据到内存中,遍历所述文件路径下所有文件名,将文件分批次转化成二进制的样本数据;
S104:读取所述样本数据,将所述样本数据打包成mini-batch张量;
S106:创建填充协议缓冲区域,将所述mini-batch张量输入网络作为输入点,实时获取所述样本数据;
S108:创建数据流图节点队列,将所述样本数据填充入卷积神经网络中训练。
在一些实施例中,所述步骤S102包括如下步骤:
读取训练数据,创建文件名列表、文件名队列、Reader以及Decoder;
根据所述文件名队列中取出文件名,通过Reader读取数据记录;Decoder用于将数据的记录转化为张量格式;
读取张量数据,将所述张量数据记录为样本队列;
从所述样本队列中选取一组样本作为训练样本队列。
在一些实施例中,所述将文件分批次转化成二进制的样本数据步骤包括:
根据所述每个样本数据的文件对应的内存空间,开辟内存缓存区域;
将文件数据读入协议缓冲区域,并转化为二进制数据,通过字典的数据格式保存序列化的字符串。
在一些实施例中,所述创建数据流图节点队列的步骤包括:
S202:将数据节点作为关键字,入度作为值创建一张散列表,将数据流图中的所有节点数放入散列表中;
S204:为所述数据流图创建一个可执行节点队列,将散列表入度为0的节点加入到该队列,并从所述散列表中删除该节点;
S206:依次执行所述队列中的每个节点,执行成功后,将所述节点输出指向的节点的入度值减1,更新散列表中对应节点的入度值;
S208:判断所述入度值是否为0,根据所述判断结果填充所述样本数据。
在一些实施例中,所述根据判断结果填充样本数据的步骤包括:
当所述入度值为0时,执行步骤S204-S208;
当所述入度值不为0时,检查可执行队列是否为空,若所述可执行队列为空,结束所述样本数据的填充;若所述可执行队列不为空,则进行报错。
在一些实施例中,所述创建填充协议缓冲区域的步骤包括:
根据所述mini-batch张量的数量,将所述mini-batch张量打包成batch;
为所述batch在内存中创建一个协议缓冲区域。
本发明第二方面提供一种卷积神经网络模型加速训练方法装置,包括:
第一读取模块,其用于读取训练数据到内存中,遍历所述文件路径下所有文件名,将文件分批次转化成二进制的样本数据;
数据打包模块,其用于读取所述样本数据,将所述样本数据打包成mini-batch张量;
第二读取模块,其用于创建填充协议缓冲区域,将所述mini-batch张量输入网络作为输入点,实时获取所述样本数据;及
数据填充模块,其用于创建数据流图节点队列,将所述样本数据填充入卷积神经网络中训练。
本发明第三方面提供一种电子设备,包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备和存储器依次连接,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行上述的方法。
本发明第四方面提供一种可读存储介质,所述存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述的方法。
、有益效果
相比于现有技术,本发明的有益效果为:
(1)本发明在读取文件名列表时,创建文件名的队列,不直接将文件的数据读取到内存中,防止了数据读取过大导致内存溢出,降低流水线输入中常见的因为硬件资源满足不了指令运行的要求发生资源冲突问题,缓解模型训练阶段的流水线读取数据的速度瓶颈;
(2)本发明在通过读取文件数据大小后,将文件转换为二进制字符文件,且提供了一个协议缓冲区域,使神经网络模型能够不断遍历数据集的时候能够快速找到文件;
(3)本发明为填充数据流提供了一个协议缓冲区,使得每一步训练都能够实时的获取到输入的样例;
(4)本发明为数据的输入创建一个标签名和入度值的键值对,在填充数据进入神经网络训练的时候,入度值相同的数据节点一起同时加载,能够加快数据读取的效率。
附图说明
通过结合附图对本申请实施例进行更详细的描述,本申请的上述以及其他目的、特征和优势将变得更加明显。附图用来提供对本申请实施例的进一步理解,并且构成说明书的一部分,与本申请实施例一起用于解释本申请,并不构成对本申请的限制。在附图中,相同的参考标号通常代表相同部件或步骤。附图中:
图1是本发明实施例提供的一种卷积神经网络模型加速训练方法流程图;
图2是本发明实施例提供的一种卷积神经网络模型加速训练装置框图;
图3是本发明实施例提供的创建数据流图节点队列填充数据方法流程图;
图4是本发明实施例提供的电子设备的框图。
具体实施方式
下面,将参考附图详细地描述根据本申请的实施例。显然,所描述的实施例仅仅是本申请的一部分实施例,而不是本申请的全部实施例,应理解,本申请不受这里描述的实施例的限制。
示例性方法
如图1和3所示,一种卷积神经网络模型加速训练方法,包括以下步骤:
S102:读取训练数据到内存中,遍历所述文件路径下所有文件名,将文件分批次转化成二进制的样本数据。
具体的,读取训练数据,创建文件名列表、文件名队列、Reader以及Decoder;此处的训练数据是指向神经网络输入的训练样本,可以是包括特定目标物的图像等;创建文件名列表,是在数据流图前创建一个获取文件名列表的操作,该操作输入一个文件名列表的匹配模式,返回一个存储了符合该匹配模式的文件名列表变量,在初始化全局变量的时候,该文件列表也会被初始化。
然后,输入由上述步骤生成的文件名列表,输出是一个先入先出的(FIFO)文件名队列;根据所述文件名队列中取出文件名,通过Reader读取数据记录;Decoder用于将数据的记录转化为张量格式;读取张量数据,将所述张量数据记录为样本队列;从所述样本队列中选取一组样本作为训练样本队列;在实施过程中,例如创建解Reader器和Decoder器队列,首先创建输入数据文件对应的Reader器,从文件名队列中取出文件名,传入Reader器方法返回数据记录的元组,Decoder器将数据记录中的每一列数据转换为张量格式。需要说明的是,Reader的功能是读取数据记录,Decoder的功能是将数据的记录转化为张量格式;在调用Reader.read的方法返回一个类似于(输入文件名,数据记录)的元组,最后使用Decoder方法将每一列数据都转化为张量的形式。此处的张量是三维张量,纬度分别是输入数据个数、输入文件名、数据记录;文件名队列是指:这个文件的路径进行队列排序读取,这里文件数据指的是文件队列里面的一个文件的数据,关联就是文件名队列只存储文件的路径,文件数据是该路径下的具体数据。
需要说明的是,数据流图本身是一个具有计算拓扑和内部结构的“壳”,构建数据流图的过程实际上就是对应机器学习模型的具体实现。对于一个固定的机器学习模型,建立了其对应数据流图后,才能让数据流入“壳”,继而进行模型的训练。基于梯度下降算法求解的机器学习问题,通常可分为前向图求值与后向图求梯度两个计算阶段。其中,前向图由用户自行编写代码完成,主要包括模型的目标函数和损失函数,输入、输出的数据的形状、类型等,后向图则由TensorFlow优化器自动生成,主要功能为计算模型参数的梯度值,并使用梯度值更新模型参数。文件名列表是一个list类型的数据,里面的内容是需要用的数据文件名。可以使用常规的python语法入:[file1, file2]。也可以使用tf.train.match_filename_once方法通过匹配输入。;该方法传入的是一个文件名列表,输出的是一个先进先出队列。在该方法中存在两个重要参数,num_epochs和shuffle。num_epochs表示列表遍历的次数,主要是由于有时候训练模型需要反复的遍历数据集便于更新模型参数,默认情况下是None(循环遍历)。
将所述样本数据写入二进制文件步骤包括:根据所述每个样本数据的文件对应的内存空间,开辟内存缓存区域;将文件数据读入协议缓冲区域,并转化为二进制数据,通过字典的数据格式保存序列化的字符串。
具体的,读取上述样本文件数据的占用内存大小信息,从而获得每个文件所需要的内存空间大小;开辟数据协议缓冲区域,使用二进制协议为获得的文件数据的占用内存大小开辟内存缓存区域;将文件数据读入协议缓冲区域,读取开辟数据协议缓冲区域内的数据文件;将协议缓冲区序列转化为一系列字符串生成二进制文件,读取到的数据文件,使用字典的数据格式保存为序列化的字符串;再将序列化后的二进制字符串读取。
S104:读取所述样本数据,将所述样本数据打包成mini-batch张量。
具体的,创建张量时,从二进制文件中读取一个样本;将多个二进制样本读取为一个mini-batch,根据创建mini-batch张量,并设置好mini-batch数量后,将多个样本数据打包成batch。需要说明的是,Mini-batch 是一个一次训练数据集的一小部分,而不是整个训练集的技术。它可以使内存较小、不能同时训练整个数据集的电脑也可以训练模型。批大小,就是每次调整参数前所选取的样本(称为mini-batch或batch)数量。
S106:创建填充协议缓冲区域,将所述mini-batch张量输入网络作为输入点,实时获取所述样本数据。
具体的,为上述的batch大小的数据样本在内存中创建一个协议缓冲区域;将mini-bath张量传入网络作为输入点,实时的获取输出的样本数据,此处网络是指数据流图。
S108:创建数据流图节点队列,将所述样本数据填充入卷积神经网络中训练。
具体的,如图3所示,S202:将数据节点作为关键字,入度作为值创建一张散列表,将数据流图中的所有节点数放入散列表中;
S204:为所述数据流图创建一个可执行节点队列,将散列表入度为0的节点加入到该队列,并从所述散列表中删除所述节点;
S206:依次执行该队列中的每个节点,执行成功后,将所述节点输出指向的节点的入度值减1,更新散列表中对应节点的入度值;
S208:判断所述入度值是否为0,根据所述判断结果填充所述样本数据。
当所述入度值为0时,执行步骤S204-S208;当所述入度值不为0时,检查可执行队列是否为空,若所述可执行队列为空,结束所述样本数据的填充;若所述可执行队列不为空,则进行报错。本示例,在读取文件名列表时,创建文件名的队列,不直接将文件的数据读取到内存中,防止了数据读取过大导致内存溢出,降低流水线输入中常见的因为硬件资源满足不了指令运行的要求发生资源冲突问题,缓解模型训练阶段的流水线读取数据的速度瓶颈。
示例性装置
如图2所示, 一种卷积神经网络模型加速训练方法装置,包括:
第一读取模块,其用于读取训练数据到内存中,遍历所述文件路径下所有文件名,将文件分批次转化成二进制的样本数据。
具体的,读取训练数据,创建文件名列表、文件名队列、Reader以及Decoder;根据所述文件名队列中取出文件名,通过Reader读取数据记录;Decoder用于将数据的记录转化为张量格式;读取张量数据,将所述张量数据记录为样本队列;从所述样本队列中选取一组样本作为训练样本队列;根据所述每个样本数据的文件对应的内存空间,开辟内存缓存区域;将文件数据读入协议缓冲区域,并转化为二进制数据,通过字典的数据格式保存序列化的字符串。
数据打包模块,其用于读取所述样本数据,将所述样本数据打包成mini-batch张量;
第二读取模块,其用于创建填充协议缓冲区域,将所述mini-batch张量输入网络作为输入点,实时获取所述样本数据。
数据填充模块,其用于创建数据流图节点队列,将所述样本数据填充入卷积神经网络中训练。
具体的,将数据节点作为关键字,入度作为值创建一张散列表,将数据流图中的所有节点数放入散列表中;为所述数据流图创建一个可执行节点队列,将散列表入度为0的节点加入到该队列,并从所述散列表中删除所述节点;依次执行该队列中的每个节点,执行成功后,将所述节点输出指向的节点的入度值减1,更新散列表中对应节点的入度值;判断所述入度值是否为0,根据所述判断结果填充所述样本数据。
示例性电子设备
下面,参考图4来描述根据本申请实施例的电子设备。该电子设备可以是可移动设备本身,或与其独立的单机设备,该单机设备可以与可移动设备进行通信,以从它们接收所采集到的输入信号,并向其发送组合图像信息。
图4图示了根据本申请实施例的电子设备的框图。
如图4所示,电子设备10包括一个或多个处理器11和存储器12。
处理器11可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备10中的其他组件以执行期望的功能。
存储器12可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器11可以运行所述程序指令,以实现上文所述的本申请的各个实施例的决策方法以及/或者其他期望的功能。
在一个示例中,电子设备10还可以包括:输入装置13和输出装置14,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。例如,该输入设备13可以包括例如摄像头、视频播放器等各种设备。该输入设备13还可以包括例如键盘、鼠标等等。该输出装置14可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
当然,为了简化,图4中仅示出了该电子设备10中与本申请有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备10还可以包括任何其他适当的组件。
示例性计算机程序产品和计算机可读存储介质
除了上述方法和设备以外,本申请的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本申请各种实施例的决策方法中的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本申请实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本申请的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本申请各种实施例的决策方法中的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本申请的基本原理,但是,需要指出的是,在本申请中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本申请的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本申请为必须采用上述具体的细节来实现。
本申请中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
还需要指出的是,在本申请的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本申请的等效方案。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本申请。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本申请的范围。因此,本申请不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本申请的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。
Claims (7)
1.一种卷积神经网络模型加速训练方法,其特征在于,包括如下步骤:
S102:读取训练数据到内存中,遍历文件路径下所有文件名,将文件分批次转化成二进制的样本数据;
S104:读取所述样本数据,将所述样本数据打包成mini-batch张量;
S106:创建填充协议缓冲区域,将所述mini-batch张量输入网络作为输入点,实时获取所述样本数据;
S108:创建数据流图节点队列,将所述样本数据填充入卷积神经网络中训练;
所述创建数据流图节点队列的步骤包括:
S202:将数据节点作为关键字,入度作为值创建一张散列表,将数据流图中的所有节点数放入散列表中;
S204:为所述数据流图创建一个可执行节点队列,将散列表入度为0的节点加入到该队列,并从所述散列表中删除该节点;
S206:依次执行所述队列中的每个节点,执行成功后,将所述节点输出指向的节点的入度值减1,更新散列表中对应节点的入度值;
S208:判断所述入度值是否为0,根据判断结果填充所述样本数据;
所述根据判断结果填充样本数据的步骤包括:
当所述入度值为0时,执行步骤S204-S208;
当所述入度值不为0时,检查可执行队列是否为空,若所述可执行队列为空,结束所述样本数据的填充;若所述可执行队列不为空,则进行报错。
2.根据权利要求1所述的卷积神经网络模型加速训练方法,其特征在于,所述步骤S102包括如下步骤:
读取训练数据,创建文件名列表、文件名队列、Reader以及Decoder;
根据所述文件名队列中取出文件名,通过Reader读取数据记录;Decoder用于将数据的记录转化为张量格式;
读取张量数据,将所述张量数据记录为样本队列;
从所述样本队列中选取一组样本作为训练样本队列。
3.根据权利要求2所述的卷积神经网络模型加速训练方法,其特征在于,所述将文件分批次转化成二进制的样本数据步骤包括:
根据所述每个样本数据的文件对应的内存空间,开辟内存缓存区域;
将文件数据读入协议缓冲区域,并转化为二进制数据,通过字典的数据格式保存序列化的字符串。
4.根据权利要求1所述的卷积神经网络模型加速训练方法,其特征在于,所述创建填充协议缓冲区域的步骤包括:
根据所述mini-batch张量的数量,将所述mini-batch张量打包成batch;
为所述batch在内存中创建一个协议缓冲区域。
5.一种卷积神经网络模型加速训练方法装置,其特征在于,包括:
第一读取模块,其用于读取训练数据到内存中,遍历文件路径下所有文件名,将文件分批次转化成二进制的样本数据;
数据打包模块,其用于读取所述样本数据,将所述样本数据打包成mini-batch张量;
第二读取模块,其用于创建填充协议缓冲区域,将所述mini-batch张量输入网络作为输入点,实时获取所述样本数据;及
数据填充模块,其用于创建数据流图节点队列,将所述样本数据填充入卷积神经网络中训练;
所述创建数据流图节点队列的步骤包括:
将数据节点作为关键字,入度作为值创建一张散列表,将数据流图中的所有节点数放入散列表中;
为所述数据流图创建一个可执行节点队列,将散列表入度为0的节点加入到该队列,并从所述散列表中删除该节点;
依次执行所述队列中的每个节点,执行成功后,将所述节点输出指向的节点的入度值减1,更新散列表中对应节点的入度值;
判断所述入度值是否为0,根据判断结果填充所述样本数据;
所述根据判断结果填充样本数据的步骤包括:
当所述入度值为0时,执行所述创建数据流图节点队列的步骤;
当所述入度值不为0时,检查可执行队列是否为空,若所述可执行队列为空,结束所述样本数据的填充;若所述可执行队列不为空,则进行报错。
6.一种电子设备,其特征在于,包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备和存储器依次连接,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如权利要求1-4任一项所述的方法。
7.一种可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1-4任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010947824.5A CN112085166B (zh) | 2020-09-10 | 2020-09-10 | 一种卷积神经网络模型加速训练方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010947824.5A CN112085166B (zh) | 2020-09-10 | 2020-09-10 | 一种卷积神经网络模型加速训练方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112085166A CN112085166A (zh) | 2020-12-15 |
CN112085166B true CN112085166B (zh) | 2024-05-10 |
Family
ID=73736360
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010947824.5A Active CN112085166B (zh) | 2020-09-10 | 2020-09-10 | 一种卷积神经网络模型加速训练方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112085166B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114237918B (zh) | 2022-02-28 | 2022-05-27 | 之江实验室 | 一种面向神经网络模型计算的图执行方法和装置 |
CN116468458A (zh) * | 2023-03-15 | 2023-07-21 | 深圳优钱信息技术有限公司 | 基于人工智能和神经网络的精准营销白名单提取方法 |
CN116822657B (zh) * | 2023-08-25 | 2024-01-09 | 之江实验室 | 一种模型训练加速的方法、装置、存储介质及电子设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110378479A (zh) * | 2019-06-11 | 2019-10-25 | 平安科技(深圳)有限公司 | 基于深度学习的图片输入方法、装置及终端设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110390387B (zh) * | 2018-04-20 | 2023-07-18 | 伊姆西Ip控股有限责任公司 | 对深度学习应用所用资源进行评估 |
-
2020
- 2020-09-10 CN CN202010947824.5A patent/CN112085166B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110378479A (zh) * | 2019-06-11 | 2019-10-25 | 平安科技(深圳)有限公司 | 基于深度学习的图片输入方法、装置及终端设备 |
Non-Patent Citations (6)
Title |
---|
Dynamic Look-up Table Method for Optimizing the Training of Deep Neural Networks on Many-Core Architecture;Jing Xia et al.;《 IEEE Xplore》;20200120;全文 * |
基于入度调整的结构化P2P网络拥塞控制算法;陈志 等;《计算机工程》;第1节 * |
基于改进VGG16的猴子图像分类方法;田佳鹭 等;《信息技术与网络安全》;第2节 * |
复杂卫星图像中的小目标船舶识别;姚红革 等;遥感学报(第02期);全文 * |
如何解决内存访问的瓶颈问题;方匡钿;宁波职业技术学院学报(第02期);全文 * |
深度学习中的内存管理问题研究综述;马玮良 等;大数据(第04期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112085166A (zh) | 2020-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112085166B (zh) | 一种卷积神经网络模型加速训练方法、装置、电子设备及存储介质 | |
US11263541B2 (en) | Ensembled decision systems using feature hashing models | |
CN111105029B (zh) | 神经网络的生成方法、生成装置和电子设备 | |
EP3757794A1 (en) | Methods, systems, articles of manufacturing and apparatus for code review assistance for dynamically typed languages | |
US11106437B2 (en) | Lookup table optimization for programming languages that target synchronous digital circuits | |
KR20140103143A (ko) | 상태 기계 격자에서의 카운터 동작 | |
JP2023545625A (ja) | ソフトウェアの脆弱性のトリアージのためのシステムおよび方法 | |
US20240161474A1 (en) | Neural Network Inference Acceleration Method, Target Detection Method, Device, and Storage Medium | |
CN115994177B (zh) | 基于数据湖的知识产权管理方法及其系统 | |
CN113570030B (zh) | 数据处理方法、装置、设备以及存储介质 | |
JP2008299723A (ja) | プログラム検証方法、プログラム検証装置 | |
US9286289B2 (en) | Ordering a lexicon network for automatic disambiguation | |
CN116431598A (zh) | 一种基于Redis的关系型数据库全量内存化的方法 | |
CN111950579A (zh) | 分类模型的训练方法和训练装置 | |
CN113762459A (zh) | 一种模型训练方法、文本生成方法、装置、介质及设备 | |
EP4414901A1 (en) | Model weight acquisition method and related system | |
CN116644180A (zh) | 文本匹配模型的训练方法、训练系统和文本标签确定方法 | |
US4989162A (en) | Method of using an accuracy valve in a conflict resolution of a forward inference | |
EP4258169A1 (en) | Model training method, apparatus, storage medium, and device | |
US20100293283A1 (en) | On-demand marshalling and de-marshalling of network messages | |
US20230062307A1 (en) | Smart document management | |
US20200379821A1 (en) | Method and apparatus for executing workflow including functions written in heterogeneous programing language | |
CN113805976B (zh) | 数据处理方法及装置、电子设备及计算机可读存储介质 | |
CN113190657B (zh) | NLP数据预处理方法、jvm及spark端服务器 | |
JP5696280B1 (ja) | 用語統一システム及び用語統一プログラム、並びに用語統一方法 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |