CN105574585B - 基于多线程互斥的神经网络模型的样本训练方法 - Google Patents
基于多线程互斥的神经网络模型的样本训练方法 Download PDFInfo
- Publication number
- CN105574585B CN105574585B CN201510927551.7A CN201510927551A CN105574585B CN 105574585 B CN105574585 B CN 105574585B CN 201510927551 A CN201510927551 A CN 201510927551A CN 105574585 B CN105574585 B CN 105574585B
- Authority
- CN
- China
- Prior art keywords
- training
- neural network
- network model
- sample
- data
- 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.)
- Expired - Fee Related
Links
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/08—Learning methods
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
本发明涉及神经网络模型的样本训练方法,目的是为了解决目前的神经网络模型在样本训练过程中训练耗时长的问题。本发明提供一种基于多线程互斥的神经网络模型的样本训练方法,包括:确定一定数量的样本集合作为训练的基准数据集合,对训练权值进行适度的扭曲,设置训练的初始学习率和最终学习率;以初始学习率为基础,使用二阶反向传播学习算法对样本集合进行训练,当学习率达到最终学习率时,结束训练,训练时,同一进程中运行多个线程,多线程之间共享数据时,判断共享数据是否为需要加锁的数据,若是,则锁定和释放同步对象采用即用即释放资源的共享权值访问方法。本发明适用于神经网络模型的样本训练。
Description
技术领域
本发明涉及神经网络模型的样本训练方法,特别涉及一种基于多线程互斥的神经网络模型的样本训练方法。
背景技术
卷积神经网络的训练过程异常的耗时,整个训练时段完全处于一种被动的等待状态,算法的改进和实验结果的时间成本具有不可比拟性。训练结果的运算周期往往在几天到几周甚至数月之久,而小样本数量的训练测试结果又不具备泛化性和说服力,即使使用小样本数量的训练样本投入训练过程,在花费较短时间训练得到分类器,可测试结果往往不尽人意。这时我们迫切的需要一种解决加快训练和减少计算时间问题的方法。
卷积神经网络是最近广泛应用于模式识别和计算机视觉等领域的一种算法模型,其中分类器的设计往往需要大量的样本训练和高性能服务器的运算环节上,对于一个可靠和稳定的分类器的训练来说:大量样本数据,高性能计算体系和长久的时间成本,这三者成为课题继续推进和发展的瓶颈,必须有针对性的改进训练的计算过程用于减少时间运行的损耗。
发明内容
本发明的目的是为了解决目前的神经网络模型在样本训练过程中训练耗时长的问题。
为达到上述目的,本发明提供一种基于多线程互斥的神经网络模型的样本训练方法,包括:确定一定数量的样本集合作为训练的基准数据集合,对训练权值进行适度的扭曲,设置训练的初始学习率和最终学习率;
以初始学习率为基础,使用二阶反向传播学习算法对样本集合进行训练,当学习率达到最终学习率时,结束训练;
其特征在于,训练时,同一进程中运行多个线程,多线程之间共享数据时,判断共享数据是否为需要加锁的数据,若是,则锁定和释放同步对象采用即用即释放资源的共享权值访问方法。
具体地,判断共享数据是否为需要加锁的数据的方法如下:对于同一共享数据,若存在不同线程对其既需要读取又需要写入的情况时,该共享数据位需要加锁的数据。
具体地,当某一线程试图锁定互斥体保护的神经网络节点的共享权值时,将等待直到网络可以获取锁,获得锁之后,线程向前传播模式运作并计算存储网络中的所有神经元的输出值,互斥体的锁被释放。
较佳地,在加锁后多线程程序中产生锁竞争问题,本发明采用如下方法解决加锁后的锁竞争问题:通过资源复制的方法让每个线程都拥有一份该资源的副本从而避免资源共享或使用读写锁来减少锁竞争。
具体地,所述初始学习率为0.001,最终学习率为0.00005。
具体地,对训练权值进行扭曲的方法包括缩放因子,反转和弹性形变。
本发明的有益效果是:本专利兼顾性能和总体训练耗时等方面原因,对算法的提升做实验数据的比对,证明多线程互斥原理在程序实施方面具有极优的性能体现。通过本发明的方法,神经网络模型的样本训练时间大大缩短,提高了整个训练的效率。
具体实施方式
以下对本发明的基于多线程互斥的神经网络模型的样本训练方法的流程及其原理进行详细说明。
本发明为解决目前的神经网络模型在样本训练过程中训练耗时长的问题,提供一种基于多线程互斥的神经网络模型的样本训练方法,包括:确定一定数量的样本集合作为训练的基准数据集合,对训练权值进行适度的扭曲,设置训练的初始学习率和最终学习率;
以初始学习率为基础,使用二阶反向传播学习算法对样本集合进行训练,当学习率达到最终学习率时,结束训练;
训练时,同一进程中运行多个线程,多线程之间共享数据时,判断共享数据是否为需要加锁的数据,若是,则锁定和释放同步对象采用即用即释放资源的共享权值访问方法。
以下对本发明的方法的原理进行进一步详细说明。
本发明涉及一种关于多线程互斥原理在卷积神经网络设计实现方面的优化方法,其中主要包括如何设计神经网络的训练形式和实验过程等优化运行。最终通过软件实现卷积神经网络的训练模型,并使用训练分类器的用时和实际测试数据等具体运行参数上说明本发明所阐述的方法取得优良运行结果,进而表明算法对实验运行时间方面很大程度上可以节约开销。
首先本发明提出如何在多线程操作方面使用多个线程对共享数据的访问,而神经网络层级和神经元彼此间数据的传递往往存在很多对共享数据的访问和修改。假设有线程A和线程B,它们需要访问同一权值共享区域读取某个权值,线程A写(或者是更新)线程B读。一般情况下我们是希望线程A写操作完成后再进行读操作或者线程B读操作完成后我们再进行写操作。但是在多线程中,可能由于线程A分配的时间片用完了或者其他原因导致线程A的写操作还没完成就调用线程B来对这块共享权值进行更新操作,也有可能在线程B的读操作还没完成就调用线程A来对这块共享权值进行更新操作,这些情况都有可能导致错误而使整体收敛速度变缓。本发明在设计之初把线程需要访问的共享权值表示可以上锁的对象,而同步对象当成是锁的唯一钥匙,重点在于阐述一把钥匙开一把锁既一次只允许一次线程访问。在并发的环境里,加锁可以保护共享的数据,但是加锁也会存在一些问题:其中最主要的问题是由于临界区无法并发运行,进入临界区就需要等待,加锁带来效率的降低,这就意味着时间成本的增加。
本发明提出并行计算中加锁机制,由于大多数并发是不需要加锁的,所以本专利这里重点讲述在神经网络训练过程时如何在处于同一个进程中运行多个线程,而且各自处理相互独立的事务过程对加锁解锁方面的介绍。在神经网络节点间计算和传播权重值的情况下,各个并发实体之间如果没有共享数据,并发运行也就不需要加锁。多线程并发运行时,虽然有共享数据,如果所有线程只是读取共享数据而不修改它,也是不用加锁的,比如共享权重就是不需要加锁的数据,每个线程都会读取共享权重而不用加锁。排除所有这些情况,多线程之间有共享数据,有的线程要修改这些共享数据,有的线程要读取这些共享数据,这才是本专利需要关注的情况。由于线程同步释放的内部运行机制,神经网络交错复杂,并行关系处理数据不可能存在某一时刻只有一个线程能访问数据的办法,所以神经网络本身没有临界区。线程同步是神经网络的自动锁的设计目的,在本发明重点阐述的其中有一个重要的运用于网络训练初始化的内容,即在可操作的层面我们锁定和释放同步对象通过使用即用即释放资源的共享权值访问方法,加快对共享数据的访问速度提高训练时对数据的使用效率,需要访问的共享权值即直接使用,需要修改的的共享权值在修改所处的线程中保持唯一的访问原则。
其次,在一个大数据量的样本训练模型有数以万计的神经网络神经元结点下,以100个线程并发为例,每个线程计算一个神经元的权重并传播至下一层网络,总共要进行上万次的加锁和解锁,那么几乎所有线程都在等待,比较以往传统的网络计算模式即使有更高速的计算能力也不能更快的处理当前的数据。本专利阐明神经网络通过序列运行方面的优点,当某一线程试图锁定互斥体保护的神经网络节点的共享权值时,将等待直到网络可以获取锁,获得锁之后,线程向前传播模式运作并计算存储网络中的所有神经元的输出值。互斥锁就被释放,这允许另一个线程来做同样的事情。周而复始,使线程加快并保持同步,在完全近似的同步状态情况下,同步是没有内核模式的锁定机制的实现。相反,同步是一个比较和交换实现的方法,这是一个无锁的方法。该方法利用的是保证在一个CPU周期的完整的原子操作,保证对权重值的基本操作是原子的。并进行原子的比较和交换操作在指定的内存区域,为了保证交换是原子的加之由于互斥体共同对一个共享权值的单独访问而设计。比较权重的目标值与被比较的权重值在交换或者传递值时必须相等,如果两者不相等,那么这意味着另一个线程修改了权重值,修改了权重值后另一线程不能再次修改从而保证共享权值的多线程唯一访问机制。在实际中本发明阐述的优化方法极大的加快了训练的运算速度。
最后说明避免共享权值死锁的方法,即避免在神经网络程序设计方面遭遇到的锁竞争问题处理方式:多线程程序中锁竞争是运行过程中的性能瓶颈,使用锁保护共享变量能防止多个线程同时对该变量进行更新,保证在同一时刻只有一个线程访问该临界区。正是因为锁的使用造成的对临界区的串行执行导致了并行程序的性能瓶颈。其一:通过资源复制的方法让每个线程都拥有一份该资源的副本从而避免资源共享。我们也可以让每个线程先访问自己的资源副本,只在程序的各个线程的资源副本合并成一个共享资源,最大程度提高并行度,减少锁竞争。其二:如果对共享资源的访问多数为读操作,少数为写操作,而且写操作的时间非常短,我们就可以考虑使用读写锁来减少锁竞争。其三:更多的使用轻量级的原子操作。其四:视觉库和神经网络等开放库类的使用上我们选择使用无锁算法、数据结构。
Claims (6)
1.基于多线程互斥的神经网络模型的样本训练方法,包括:确定一定数量的样本集合作为训练的基准数据集合,对训练权值进行适度的扭曲,设置训练的初始学习率和最终学习率;
以初始学习率为基础,使用二阶反向传播学习算法对样本集合进行训练,当学习率达到最终学习率时,结束训练;
其特征在于,训练时,同一进程中运行多个线程,多线程之间共享数据时,判断共享数据是否为需要加锁的数据,若是,则锁定和释放同步对象采用即用即释放资源的共享权值访问方法。
2.如权利要求1所述的基于多线程互斥的神经网络模型的样本训练方法,其特征在于,判断共享数据是否为需要加锁的数据的方法如下:对于同一共享数据,若存在不同线程对其既需要读取又需要写入的情况时,该共享数据为需要加锁的数据。
3.如权利要求1或2所述的基于多线程互斥的神经网络模型的样本训练方法,其特征在于,当某一线程试图锁定互斥体保护的神经网络节点的共享权值时,将等待直到网络可以获取锁,获得锁之后,线程向前传播模式运作并计算存储网络中的所有神经元的输出值,对互斥体的锁被释放。
4.如权利要求1或2所述的基于多线程互斥的神经网络模型的样本训练方法,其特征在于,采用如下方法解决加锁后的锁竞争问题:通过资源复制的方法让每个线程都拥有一份该资源的副本从而避免资源共享或使用读写锁来减少锁竞争。
5.如权利要求4所述的基于多线程互斥的神经网络模型的样本训练方法,其特征在于,所述初始学习率为0.001,最终学习率为0.00005。
6.如权利要求5所述的基于多线程互斥的神经网络模型的样本训练方法,其特征在于,对训练权值进行扭曲的方法包括缩放因子,反转和弹性形变。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510927551.7A CN105574585B (zh) | 2015-12-14 | 2015-12-14 | 基于多线程互斥的神经网络模型的样本训练方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510927551.7A CN105574585B (zh) | 2015-12-14 | 2015-12-14 | 基于多线程互斥的神经网络模型的样本训练方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105574585A CN105574585A (zh) | 2016-05-11 |
CN105574585B true CN105574585B (zh) | 2018-05-08 |
Family
ID=55884691
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510927551.7A Expired - Fee Related CN105574585B (zh) | 2015-12-14 | 2015-12-14 | 基于多线程互斥的神经网络模型的样本训练方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105574585B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106650925A (zh) * | 2016-11-29 | 2017-05-10 | 郑州云海信息技术有限公司 | 一种基于MIC集群的深度学习框架Caffe系统及算法 |
CN108154237B (zh) * | 2016-12-06 | 2022-04-05 | 华为技术有限公司 | 一种数据处理系统及方法 |
CN108021339B (zh) * | 2017-11-03 | 2021-05-04 | 网宿科技股份有限公司 | 一种磁盘读写的方法、设备以及计算机可读存储介质 |
CN108491890B (zh) * | 2018-04-04 | 2022-05-27 | 百度在线网络技术(北京)有限公司 | 图像方法和装置 |
CN110135582B (zh) * | 2019-05-09 | 2022-09-27 | 北京市商汤科技开发有限公司 | 神经网络训练、图像处理方法及装置、存储介质 |
CN111062473B (zh) * | 2019-12-16 | 2023-05-23 | 腾讯科技(深圳)有限公司 | 神经网络模型中的数据计算方法、图像处理方法及装置 |
CN111552563B (zh) * | 2020-04-20 | 2023-04-07 | 南昌嘉研科技有限公司 | 一种多线程数据系统、多线程消息传递方法及系统 |
CN114064298A (zh) * | 2020-07-31 | 2022-02-18 | 北京金山云网络技术有限公司 | 数据处理方法和装置、存储介质和电子装置 |
CN113537460A (zh) * | 2021-06-29 | 2021-10-22 | 哈尔滨工业大学 | 一种适用于耀斑预报问题的多线程神经网络模型的构建方法 |
CN117971137B (zh) * | 2024-04-02 | 2024-06-04 | 山东海润数聚科技有限公司 | 一种基于多线程的大规模向量数据一致性的评估方法和系统 |
CN118172225B (zh) * | 2024-05-16 | 2024-07-23 | 蓝象智联(杭州)科技有限公司 | 逻辑回归模型的水印嵌入方法、训练方法、验证方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2352269A1 (en) * | 2008-12-30 | 2011-08-03 | State Grid Corporation of China | Service access method and system |
CN105117602A (zh) * | 2015-08-28 | 2015-12-02 | 国家电网公司 | 一种计量装置运行状态预警方法 |
CN105142177A (zh) * | 2015-08-05 | 2015-12-09 | 西安电子科技大学 | 复数神经网络信道预测方法 |
-
2015
- 2015-12-14 CN CN201510927551.7A patent/CN105574585B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2352269A1 (en) * | 2008-12-30 | 2011-08-03 | State Grid Corporation of China | Service access method and system |
CN105142177A (zh) * | 2015-08-05 | 2015-12-09 | 西安电子科技大学 | 复数神经网络信道预测方法 |
CN105117602A (zh) * | 2015-08-28 | 2015-12-02 | 国家电网公司 | 一种计量装置运行状态预警方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105574585A (zh) | 2016-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105574585B (zh) | 基于多线程互斥的神经网络模型的样本训练方法 | |
Ruan et al. | A transactional perspective on execute-order-validate blockchains | |
Bai et al. | Formal modeling and verification of smart contracts | |
Zhang et al. | An effective modified migrating birds optimization for hybrid flowshop scheduling problem with lot streaming | |
István et al. | Streamchain: Do blockchains need blocks? | |
Jixin et al. | A general temporal theory | |
CN110462639A (zh) | 信息处理设备、信息处理方法及计算机可读存储介质 | |
CN112119423A (zh) | 形式化验证的系统和方法 | |
WO2016145909A1 (zh) | 一种并发控制方法及装置 | |
CN106462449A (zh) | 具有多项目事务支持的多数据库日志 | |
Grov et al. | Formal modeling and analysis of Google’s Megastore in Real-Time Maude | |
Zhang et al. | A quick survey on large scale distributed deep learning systems | |
CN112488826A (zh) | 基于深度强化学习对银行风险定价的优化方法和装置 | |
Pang et al. | Concurrency protocol aiming at high performance of execution and replay for smart contracts | |
Lv et al. | Parallel computing of spatio-temporal model based on deep reinforcement learning | |
Liang et al. | Fast search of the optimal contraction sequence in tensor networks | |
CN117171786A (zh) | 一种抵御投毒攻击的去中心化联邦学习方法 | |
Meir et al. | Lockless transaction isolation in hyperledger fabric | |
Alwhishi et al. | Three-valued model checking smart contract systems with trust under uncertainty | |
Ivanov et al. | Modeling and verification of cache coherence protocols | |
Jiang et al. | One forward is enough for neural network training via likelihood ratio method | |
CN108038304A (zh) | 一种利用时间局部性的格子玻尔兹曼方法并行加速方法 | |
CN117077806A (zh) | 一种基于随机选举验证区块链的差分隐私化联邦学习方法 | |
De Camargo et al. | A multi‐GPU algorithm for large‐scale neuronal networks | |
Wu et al. | Improved saddle point prediction in stochastic two-player zero-sum games with a deep learning approach |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180508 Termination date: 20201214 |
|
CF01 | Termination of patent right due to non-payment of annual fee |