CN109299780A - 神经网络模型压缩方法、装置和计算机设备 - Google Patents
神经网络模型压缩方法、装置和计算机设备 Download PDFInfo
- Publication number
- CN109299780A CN109299780A CN201811030922.1A CN201811030922A CN109299780A CN 109299780 A CN109299780 A CN 109299780A CN 201811030922 A CN201811030922 A CN 201811030922A CN 109299780 A CN109299780 A CN 109299780A
- Authority
- CN
- China
- Prior art keywords
- chromosome
- neural network
- network model
- fitness value
- compression
- 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
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
- G06N3/086—Learning methods using evolutionary algorithms, e.g. genetic algorithms or genetic programming
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Biophysics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Physiology (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请公开了神经网络模型压缩方法、装置、计算机设备及计算机可读介质,该方法包括:获取经训练后的待压缩神经网络模型的结构信息;根据所述结构信息,利用遗传算法对所述待压缩神经网络模型执行压缩处理,其中,所述压缩处理后的神经网络模型基于预置的训练样本的精度不低于预设精度。该方法利用遗传算法对已经训练好的神经网络模型进行压缩,降低了神经网络模型的计算量和存储空间,使其能应用于存储和计算资源都受限的设备。进一步的,本发明的实施例的方案能同时兼顾神经网络模型的精度和压缩。
Description
技术领域
本申请涉及计算机应用技术领域,尤其涉及一种神经网络模型压缩方法及装置、计算机设备及计算机可读介质。
背景技术
近年来,随着人工智能的发展,神经网络(Neural Network,NN)算法被广泛应用于图像处理,语音识别,自然语言处理等多个领域。然而,效果较好的深度神经网络往往有着数量较大的节点(神经元)和模型参数,不仅计算量大而且在实际部署中模型占据较大一部分空间,限制了其应用于存储和计算资源都受限的设备。因此,如何对神经网络模型进行压缩显得尤为重要,特别是对已经训练好的神经网络模型进行压缩,将有利于把训练好的神经网络模型应用到诸如嵌入式设备、集成硬件设备中等应用场景。
发明内容
鉴于以上问题,本发明的实施例提供一种神经网络模型压缩方法及装置、计算机设备及计算机可读介质,其能对已经训练好的神经网络模型进行压缩,降低神经网络模型的计算量和存储空间,使神经网络模型能应用于存储和计算资源受限的设备。
按照本发明的实施例的神经网络模型压缩方法,包括:获取经训练后的待压缩神经网络模型的结构信息;根据所述结构信息,利用遗传算法对所述待压缩神经网络模型执行压缩处理,其中,所述压缩处理后的神经网络模型基于预置的训练样本的精度不低于预设精度。
按照本发明的实施例的神经网络模型压缩装置,包括:获取模块,用于获取经训练后的待压缩神经网络模型的结构信息;压缩模块,用于根据所述结构信息,利用遗传算法对所述待压缩神经网络模型执行压缩处理,其中,所述压缩处理后的神经网络模型基于预置的训练样本的精度不低于预设精度。
按照本发明的实施例的计算机设备,包括:处理器;以及存储器,其上存储有可执行指令,其中,所述可执行指令当被执行时使得所述处理器执行前述的方法。
按照本发明的实施例的计算机可读介质,其上存储有可执行指令,其中,所述可执行指令当被执行时使得计算机执行前述的方法。
从以上的描述可以看出,本发明的实施例的方案利用遗传算法对已经训练好的神经网络模型进行压缩,降低了神经网络模型的计算量和存储空间,使其能应用于存储和计算资源都受限的设备。进一步的,本发明的实施例的方案能同时兼顾神经网络模型的精度和压缩。
附图说明
图1为本发明的实施例可以应用于其中的示例性架构图;
图2为按照本发明的一个实施例的神经网络模型压缩方法的流程图;
图3为按照本发明的一个实施例的利用遗传算法对待压缩神经网络模型执行压缩处理的方法的流程图,
图4为按照本发明的一个实施例的对所述待压缩神经网络模型所对应的染色体个体执行遗传操作,以产生适应度值最优的染色体个体的方法的流程图;
图4a为一神经网络结构的示例图;
图5为按照本发明的一个实施例的神经网络模型压缩装置的示意图;
图6为按照本发明的一个实施例的计算机设备的示意图;
图7为按照本发明的一个实施例的适于用来实现本发明实施方式的示例性计算机设备的框图。
具体实施方式
现在将参考示例实施方式讨论本文描述的主题。应该理解,讨论这些实施方式只是为了使得本领域技术人员能够更好地理解从而实现本文描述的主题,并非是对权利要求书中所阐述的保护范围、适用性或者示例的限制。可以在不脱离本公开内容的保护范围的情况下,对所讨论的元素的功能和排列进行改变。各个示例可以根据需要,省略、替代或者添加各种过程或组件。例如,所描述的方法可以按照与所描述的顺序不同的顺序来执行,以及各个步骤可以被添加、省略或者组合。另外,相对一些示例所描述的特征在其他例子中也可以进行组合。
如本文中使用的,术语“包括”及其变型表示开放的术语,含义是“包括但不限于”。术语“基于”表示“至少部分地基于”。术语“一个实施例”和“一实施例”表示“至少一个实施例”。术语“另一个实施例”表示“至少一个其他实施例”。术语“第一”、“第二”等可以指代不同的或相同的对象。下面可以包括其他的定义,无论是明确的还是隐含的。除非上下文中明确地指明,否则一个术语的定义在整个说明书中是一致的。
本发明的实施例采用了遗传算法来压缩神经网络模型,下面对遗传算法和神经网络做一下简要介绍。
遗传算法(Genetic Algorithm,即GA)是一类借鉴生物界的进化规律(适者生存,优胜劣汰遗传机制)演化而来的随机化搜索方法。它是由美国的J.Holland教授于1975年首先提出,其主要特点是直接对结构对象进行操作,不存在求导和函数连续性的限定;具有内在的隐并行性和更好的全局寻优能力;采用概率化的寻优方法,能自动获取和指导优化的搜索空间,自适应地调整搜索方向,不需要确定的规则。遗传算法的这些性质,已被人们广泛地应用于组合优化、机器学习、信号处理、自适应控制和人工生命等领域。它是现代有关智能计算中的关键技术。
神经网络(NeuralNetwork,即NN),是20世纪80年代以来人工智能领域兴起的研究热点。它从信息处理角度对人脑神经元网络进行抽象,建立某种简单模型,按不同的连接方式组成不同的网络。神经网络是一种运算模型,由大量的节点(或称神经元)之间相互联接构成。每个节点代表一种特定的输出函数,称为激励函数(activation function)。每两个节点间的连接都代表一个对于通过该连接信号的加权值,称之为连接权。网络的输出则依网络的连接方式,连接权和激励函数的不同而不同。神经网络的结构信息包括节点和连接权等信息。
图1示出了可以应用本发明的实施例的神经网络模型压缩方法或神经网络模型压缩装置的示例性系统架构100。
如图1所示,系统架构100可以包括服务器102、104和网络106。网络106用以在服务器102和服务器104之间提供通信链路的介质。网络106可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
服务器102可以是提供各种服务的服务器,例如对经训练后的神经网络模型进行存储的数据存储服务器。
服务器104可以是提供各种服务的服务器,例如用于压缩神经网络模型的服务器。服务器104可以从服务器102获取经训练后的神经网络模型,并对该神经网络模型进行分析等处理,并对处理结果(例如压缩处理后的神经网络模型)进行存储。
需要说明的是,本发明实施例的神经网络模型压缩方法一般由服务器104执行,相应地,神经网络模型压缩装置一般设置于服务器104中。
需要指出的是,若服务器104所获取的神经网络模型预先存储在本地,那么系统架构也可以不包括服务器102。
应该理解,图1中的服务器和网络的数目仅仅是示意性的。根据实际需要,可以由任意数量的服务器和网络。
图2示出了按照本发明的一个实施例的神经网络模型压缩方法的流程图。图2所示的方法200可以由计算机或具有计算能力的电子设备(例如图1所示的服务器104)来执行。此外,本领域技术人员将理解,执行方法200的任何系统都在本发明的实施例的范围和精神内。需要说明的是,方法200运行于其上的电子设备可通过程序、定制电路或者由定制电路和程序的组合来执行方法200,例如可以由GPU(图形处理单元)、CPU(中央处理单元)或能够实现神经网络的任何处理器执行。
如图2所示,在步骤S202,获取经训练后的待压缩神经网络模型的结构信息。在本实施例中,上述电子设备可以通过有线连接方式或者无线连接方式从远程通信连接的服务器(例如图1所示的服务器102)获取待压缩的神经网络模型的结构信息。当然,若待压缩的神经网络模型预先存储在上述电子设备本地,上述电子设备也可以本地获取待压缩的神经网络模型的结构信息。
其中,所述待压缩神经网络模型是先前已经在预置的训练样本上被训练,并且已训练得到使神经网络模型的精度满足预设精度的模型结构。本发明实施例的待压缩神经网络模型可以是任何通用的神经网络模型,例如可以是反向传播神经网络(BPNN:BackPropagation Neural Network)模型、卷积神经网络(CNN:Convolutional NeuralNetwork)模型、基于区域信息的卷积神经网络(RCNN:Region Based ConvolutionalNeural Network)模型、循环神经网络(RNN:Recurrent Neural Network)模型、长短期记忆模型(LSTM:Long Short-Term Memory)或门控循环单元(GRU:Gated Recurrent Unit),此外,还可以是其他类型的神经网络模型或由多种神经网络结合的级联神经网络模型。
神经网络模型的结构信息包括节点信息和连接权信息,网络结构可由一联结矩阵来表示,如一N×N矩阵C=(cij)N×N表示一个有N个节点的网络结构,其中cij的值表示从节点i到节点j的连接权;cij=0表示从节点i到节点j之间无连接;cii表示节点i的偏置。
在步骤S204,根据所述结构信息,利用遗传算法对所述待压缩神经网络模型执行压缩处理,其中,所述压缩处理后的神经网络模型基于预置的训练样本的精度不低于预设精度。本实施例采用遗传算法对待压缩神经网络模型执行压缩处理,其实现的原理是根据遗传算法“优胜劣汰”的原理,在兼顾神经网络模型精度的情况下,以“压缩神经网络模型”作为准则,对已训练好的神经网络模型执行各种遗传操作,最后获得结构最简化的神经网络模型,从而实现对神经网络模型的压缩处理。
具体实施时,可通过设置一基于预置的训练样本的预设精度来约束对待压缩神经网络模型的压缩处理过程,需要说明的是,该预设精度可以是压缩处理前的待压缩神经网络模型的原始精度,或略低于该原始精度的数值。该预设精度可以是人为设置的,也可以是上述电子设备基于预置的算法设置的,而且该预设精度是可以根据实际需要进行调整的,本实施例不对此方面做任何限定。具体实施时,可利用预置的训练样本对压缩处理后的神经网络模型进行训练,以获得压缩处理后的神经网络模型的精度。
本实施例的一些可选的实现方式中,压缩处理包括删除待压缩神经网络模型的至少一个节点及其相应的连接,和/或,删除待压缩神经网络模型的至少一个连接,以降低待压缩神经网络模型的网络复杂度,提高神经网络模型的网络简化度。优选的,压缩处理包括删除待压缩神经网络模型隐含层的至少一个节点及其相应的连接,和/或,删除所述隐含层的至少一个连接。其中,隐含层(hidden layer,也叫隐藏层)是指除输入层(input layer)和输出层(output layer)以外的其他各层。
本实施例中,上述电子设备可存储经压缩处理后的神经网络模型,例如存储至上述电子设备本地(例如硬盘或内存)或与上述电子设备远程通信连接的服务器。
从以上描述可以看出,本发明实施例所提供的方案利用遗传算法对已经训练好的神经网络模型进行压缩,降低了神经网络模型的计算量和存储空间,使其能应用于存储和计算资源都受限的设备。进一步的,本发明的实施例的方案能同时兼顾神经网络模型的精度和压缩。
图3示出了按照本发明的一个实施例的利用遗传算法对待压缩神经网络模型执行压缩处理的方法的流程图,图3所示的方法300可以由计算机或具有计算能力的电子设备(例如图1所示的服务器104)来执行。此外,本领域技术人员将理解,执行方法300的任何系统都在本发明的实施例的范围和精神内。
如图3所示,在步骤S302,以基于压缩的适应度值为标准,对所述待压缩神经网络模型所对应的染色体个体执行遗传操作,以产生适应度值最优的染色体个体。在本实施例中,基于压缩的适应度值是指能反映网络简化度(或网络复杂度)的适应度值,例如可以是适应度值越大,网络简化度越高,即实现了有效压缩;适应度值越小,网络简化度越低,即没有实现有效压缩。则在利用遗传算法对神经网络模型进行压缩时,可选择适应度值大的染色体个体执行遗传操作,最终在第N代群体产生的染色体个体中适应度值最大的染色体个体为最优染色体个体。
需要说明的是,在本发明的其他实施方式中,也可以采用适应度值越大,网络复杂度越高,即没有实现有效压缩;适应度值越小,网络复杂度越低,即实现了有效压缩,则在利用遗传算法对神经网络模型进行压缩时,可选择适应度值小的染色体个体执行遗传操作,最终在第N代群体产生的染色体个体中适应度值最小的染色体个体为最优染色体个体。
本实施例的一些可选的实现方式中,可采用以下适应度函数计算适应度值:
或
其中,f(i,t)表示第t代的第i个体的适应度;E(i,t)表示第t代的第i个体对应的神经网络模型的网络误差;H(i,t)表示第t代的第i个体的网络简化度。
本实施例的一些可选的实现方式中,E(i,t)可采用以下公式计算:
其中,分别为第t代的第i个体对应的神经网络模型基于预置的第q个训练样本的期望输出值和实际输出值。
H(i,t)可采用以下公式计算:
其中,m(i,t)为第t代的第i个体的节点个数。网络结构越简化,网络简化度越大。
该实现方式中,利用网络误差E(i,t)来约束对待压缩神经网络模型的压缩处理过程,能同时兼顾精度和压缩。网络误差E(i,t)越小,则压缩处理后的神经网络模型的精度越高。网络简化度越大,则压缩处理后的神经网络模型的结构越简化。因此,在本实施方式中,网络误差越小、网络简化度越大的染色体个体,适应度值越大。
需要说明的是,虽然在上面的实施例中,给出了一个实施例的网络误差所采用的函数,该函数为二次代价函数,然而,本发明并不局限于此。在本发明的其他实施例中,也可以采用其他的函数,例如但不限于,交叉熵代价函数或对数似然函数。
需要说明的是,虽然在上面的实施例中,给出了一个实施例的网络简化度所采用的的计算公式,然而,本发明并不局限于此。在本发明的其他实施例中,本领域技术人员可根据实际需要采用合适的网络简化度计算公式。
在步骤S304,利用所述预置的训练样本对所述适应度值最优的染色体个体所对应的神经网络模型进行训练,以获得所述压缩处理后的神经网络模型。本实施例中,对最优染色体个体执行解码操作,即可得到神经网络模型最优的网络结构。本实施例的一些可选的实现方式中,在对压缩处理后的神经网络模型进行训练时,可以对压缩处理后的神经网络模型进行微调(fine-tuning)。这样可以将略低于预设精度的神经网络模型微调至满足预设精度要求。利用训练样本对神经网络模型进行训练是现有技术,在此省略对其的描述。
图4示出了按照本发明的一个实施例的对所述待压缩神经网络模型所对应的染色体个体执行遗传操作,以产生适应度值最优的染色体个体的方法的流程图。图4所示的方法400可以由计算机或具有计算能力的电子设备(例如图1所示的服务器104)来执行。此外,本领域技术人员将理解,执行方法400的任何系统都在本发明的实施例的范围和精神内。
如图4所示,在步骤S402,根据待压缩神经网络模型的结构信息,对所述待压缩神经网络模型进行编码,以得到一染色体。神经网络模型的结构需要表示为一个遗传算法个体染色体编码,才能够用遗传算法来进行计算。在一实施方式中,设待压缩的神经网络模型有N个神经元,序号是从1到N排列的输入层、隐含层、输出层节点,可以一N×N矩阵来表示神经网络结构。
现以图4a所示具有7个节点的神经网络结构作为示例,以阐述本实施例对神经网络模型的编码方法。表1为该神经网络结构的节点连接关系,在表1中,矩阵中(i,j)对应的元素表示从第i个节点到第j个节点的连接关系。由于本发明实施例在对神经网络模型进行压缩时不会涉及对待压缩神经网络模型连接权的改动,因此本实施例将节点的连接关系表示为0,1,-1的形式,其中,“0”表示没有连接;“1”表示连接权值为1,具有激发(excitory)作用,图4a中以实线表示;“-1”表示连接权值为-1,具有抑制(inhibitory)作用,图4a中以虚线表示。由此可见,表1与图4a所示结构等价。
根据表1所示的节点连接关系,可以将该神经网络的编码表示为0,1,-1组成的数字串形式,将元素(3,1)到元素(7,6)自左至右、自上而下顺序连接起来,组成下面的染色体编码:
需要说明的是,虽然在上面的实施例中,给出了一个实施例的染色体编码方法,然而,本发明并不局限于此。在本发明的其他实施例中,还可以采用例如但不局限于二进制编码或实数编码的方法。
表1、本实施例示例神经网络结构连接关系
在步骤S404,根据所述染色体,进行群体初始化生成初始群体。具体实施时,可对待压缩神经网络模型编码得到的染色体执行复制操作,随机生成预定数量的染色体个体,将这些染色体个体的集合作为初始群体。初始群体的大小由群体规模M来确定,群体规模M可以例如但不限于10~100。对这一染色体执行复制操作后,得到多条相同的染色体,每条染色体为一个染色体个体,将这多个染色体个体的集合作为初始群体,完成群体的初始化。
在步骤S406,计算群体中染色体个体的适应度值。本实施例中,适应度函数可以采用以下公式计算:
其中,f(i,t)表示第t代的第i个体的适应度;E(i,t)表示第t代的第i个体对应的神经网络模型的网络误差;H(i,t)表示第t代的第i个体的网络简化度。
E(i,t)和H(i,t)的计算可参照图3所示实施例给出的计算公式。
本实施例中,适应度函数包括公式①和公式②。其中,公式①基于网络误差的适应度函数,其反映的是神经网络模型的精度;公式②是基于网络简化度的适应度函数,其反映的是神经网络模型的压缩。由此可分别计算染色体个体基于精度的适应度值和基于压缩的适应度值。
在步骤S408,判断是否达到终止条件。其中,终止条件可以包括预先预先设定的迭代次数阈值或设定的收敛条件。迭代次数例如但不限于可以设置为500次,但迭代次数达到500次时即判断为达到终止条件。收敛条件例如但不限于可以设置为当适应度值满足一定的条件时,判断为达到终止条件。在一实施方式中,收敛条件可设置为适应度值同时满足以下条件:
其中,E0为预设网络误差值,H0为预设网络简化度值。
在步骤S410,若步骤S408判断结果为未达到所述终止条件,则以适应度值为标准,选择部分适应度值满足要求的染色体个体,执行复制、交叉或变异等遗传操作,从而产生新一代群体,然后返回步骤S408。本实施例的选择标准可以采用以下步骤:(1)以公式①计算群体中每个染色体个体基于精度的适应度值,然后计算个体被选中的第一选择概率,根据所述第一选择概率选择出第一染色体个体;(2)以公式②计算群体中每个染色体个体基于压缩的适应度值,然后计算个体被选中的第二选择概率,根据所述第二选择概率从步骤(1)选择出的第一染色体个体中选择第二染色体个体。可选的,在根据选择概率选择染色体个体前,可先找出当前群体中适应度值最高和最低的染色体个体,将最佳染色体个体保留直接进入下一代,淘汰最差染色体个体,这样能保证将优良的基因遗传给下一代。在第一次迭代时,由于初始群体的染色体个体均相同,因此,第一次迭代时所保留的最佳个体和淘汰的最差个体相同。对染色体个体的选择可以采用轮盘赌法,染色体个体的选择概率可以采用以下公式计算:
其中,p(i,t)为第t代第i个体的选择概率,f(i,t)为第t代第i个体的适应度,f(sum,t)为第t代群体总适应度。采用本实施例的选择标准可兼顾神经网络模型的精度和压缩。
对被选出的染色体个体执行复制、交叉或变异操作,如采用上述选择标准进行染色体个体的选择,则是对选择出的第二染色体个体执行复制、交叉或变异操作。其中,复制操作是指将被选出的父代染色体个体在未经任何变化的条件下从当前代直接复制到新一代个体中。交叉操作是指从群体中按上述的选择方法随机选择两个父代染色体个体,将两个父代染色体个体的部分组分相互替代,形成新的子代染色体个体。变异操作是指从群体中按上述的选择方法随机选择一个父代染色体个体,然后在该个体的表达式上随机选定一个结点作为变异点,通过将该变异点基因的值变为另一个有效值,形成新的子代染色体个体。
交叉操作是否发生可根据交叉概率Pc来决定,其方法为,随机产生一个0~1之间的随机数P,当P≤Pc,交叉操作发生,当P>Px,交叉不发生。同样,变异操作是否发生也可根据变异概率Pm来决定,由于为现有技术,在此省略对其的描述。
本实施例中,执行交叉操作时,可在每个父代染色体个体中按照一定概率随机选择一个交叉点,交叉点以下部分称为交叉段。第一个父代染色体个体删除其交叉段后,把第二个父代染色体个体的交叉段插入到他的交叉点处,这样就生成了第一个子代染色体个体。同样,第二个父代染色体个体删除其交叉段后,将第一个父代染色体个体的交叉段插入到他的交叉点处后而形成第二个子代染色体个体。这种情况下,如果选择的两个父代染色体个体相同,但由于其交叉点不同,所产生的子代染色体个体也不相同,有效避免了近亲繁殖,提高了全局搜索能力。
本实施例中,执行变异操作时,可以是随机采用以下操作之一:(a)删除神经网络模型隐含层中的至少一个节点及其相应的连接;(b)删除神经网络模型隐含层中的至少一个连接;(c)对被删除的节点或连接以一定的概率进行随机修复;(d)增加隐含层节点,随机产生相应的连接权值。其中,删除节点总是先于增加节点,且增加的加点数不应大于删除的节点数,同时,只有当删除节点不能产生一个好的子代时,才增加节点,这样的变异操作能保证方法始终往压缩神经网络模型的方向进行。
在步骤S412,若步骤S408判断结果为达到所述终止条件,则输出所述适应度值最优的染色体个体。本实施例中,最优染色体个体可设置为满足以下条件:
f0=max[H(i,t)]
或者,最优染色体个体可设置为同时满足以下条件:
其中,f0为最优染色体个体的适应度,E0为预设网络误差值,H(i,t)为第t代的第i个体的网络简化度。
图5示出了按照本发明的一个实施例的神经网络模型压缩装置的示意图。图5所示的装置500与上述神经网络模型压缩方法相对应,由于装置500的实施例基本相似于方法的实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。装置500可以利用软件、硬件或软硬件结合的方式来实现,可以安装在计算机或其他合适的具有计算能力的电子设备中。
如图5所示,装置500可以包括获取模块502和压缩模块504。获取模块502用于获取经训练后的待压缩神经网络模型的结构信息。压缩模块504用于根据所述结构信息,利用遗传算法对所述待压缩神经网络模型执行压缩处理,其中,所述压缩处理后的神经网络模型基于预置的训练样本的精度不低于预设精度。
在装置500的一实施方式中,压缩模块504包括遗传操作子模块和训练子模块。遗传操作子模块用于以基于压缩的适应度值为标准,对所述待压缩神经网络模型所对应的染色体个体执行遗传操作,以产生适应度值最优的染色体个体。训练子模块用于利用所述预置的训练样本对所述适应度值最优的染色体个体所对应的神经网络模型进行训练,以获得所述压缩处理后的神经网络模型。
在装置500的另一实施方式中,遗传操作子模块包括编码单元、初始化单元、计算单元、判断单元、遗传操作单元和输出单元。编码单元用于根据所述结构信息,对所述待压缩神经网络模型进行编码,以得到一染色体。初始化单元用于根据所述染色体,进行群体初始化生成初始群体。计算单元用于计算群体中染色体个体的适应度值。判断单元用于判断是否达到终止条件。遗传操作单元用于若未达到所述终止条件,则以适应度值为标准,选择部分适应度值满足要求的染色体个体,执行复制、交叉或变异操作,从而产生新一代群体。输出单元用于若达到所述终止条件,则输出所述适应度值最优的染色体个体。
在装置500的又一实施方式中,计算单元进一步用于分别计算所述染色体个体基于精度和基于压缩的适应度值。相应的,遗传操作单元进一步用于根据所述基于精度的适应度值,获取所述染色体个体的第一选择概率,根据所述第一选择概率选择第一染色体个体,以及,根据所述基于压缩的适应度值,获取所述染色体个体的第二选择概率,根据所述第二选择概率从所述第一染色体个体中选择第二染色体个体;对所述第二染色体个体执行复制、交叉或变异操作,从而产生新一代群体。
图6示出了按照本发明的一个实施例的计算机设备的示意图。如图6所示,计算机设备600可以包括处理器602和存储器604,其中,存储器604上存储有可执行指令,其中,所述可执行指令当被执行时使得处理器602执行图2所示的方法200、图3所示的方法300或图4所示的方法400。
图7示出了适于用来实现本发明实施方式的示例性计算机设备的框图。图7所示的计算机设备700仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图7所示,计算机设备700以通用计算设备的形式实现。计算机设备700的组件可以包括但不限于:处理器702,系统存储器704,连接不同系统组件(包括处理器702和系统存储器704)的总线706。
总线706表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机设备700典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备700访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器704可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)708和和/或高速缓存存储器710。计算机设备700可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统712可以用于读写不可移动的、非易失性磁介质(图7未显示,通常称为“硬盘驱动器”)。尽管图7中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线706相连。系统存储器704可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明上述图1或图2实施例的功能。
具有一组(至少一个)程序模块716的程序/实用工具714,可以存储在例如系统存储器704中,这样的程序模块716包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块716通常执行本发明所描述的上述图2、图3或图4实施例中的功能和/或方法。
计算机设备700也可以与一个或多个外部设备800(例如键盘、指向设备、显示器900等)通信,还可与一个或者多个使得用户能与该计算机设备700交互的设备通信,和/或与使得该计算机设备700能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口718进行。并且,计算机设备700还可以通过网络适配器720与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器720通过总线706与计算机设备700的其它模块通信。应当明白,尽管图中未示出,可以结合计算机设备700使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理器702通过运行存储在系统存储器704中的程序,从而执行各种功能应用以及数据处理,例如实现上述实施例所示的神经网络模型压缩方法。
本发明的实施例还提供一种计算机可读介质,其上存储有可执行指令,其中,所述可执行指令当被执行时使得计算机执行图2所示的方法200、图3所示的方法300或图4所示的方法400。
本实施例的计算机可读介质可以包括上述图7所示实施例中的系统存储器704中的RAM708、和/或高速缓存存储器710、和/或存储系统712。
随着科技的发展,计算机程序的传播途径不再受限于有形介质,还可以直接从网络下载,或者采用其他方式获取。因此,本实施例中的计算机可读介质不仅可以包括有形的介质,还可以包括无形的介质。
本实施例的计算机可读介质可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言,诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
本领域的技术人员应明白,本发明实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、装置、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
上面结合附图阐述的具体实施方式描述了示例性实施例,但并不表示可以实现的或者落入权利要求书的保护范围的所有实施例。在整个本说明书中使用的术语“示例性”意味着“用作示例、实例或例示”,并不意味着比其它实施例“优选”或“具有优势”。出于提供对所描述技术的理解的目的,具体实施方式包括具体细节。然而,可以在没有这些具体细节的情况下实施这些技术。在一些实例中,为了避免对所描述的实施例的概念造成难以理解,公知的结构和装置以框图形式示出。
本公开内容的上述描述被提供来使得本领域任何普通技术人员能够实现或者使用本公开内容。对于本领域普通技术人员来说,对本公开内容进行的各种修改是显而易见的,并且,也可以在不脱离本公开内容的保护范围的情况下,将本文所定义的一般性原理应用于其它变型。因此,本公开内容并不限于本文所描述的示例和设计,而是与符合本文公开的原理和新颖性特征的最广范围相一致。
Claims (10)
1.神经网络模型压缩方法,包括:
获取经训练后的待压缩神经网络模型的结构信息;
根据所述结构信息,利用遗传算法对所述待压缩神经网络模型执行压缩处理,其中,所述压缩处理后的神经网络模型基于预置的训练样本的精度不低于预设精度。
2.根据权利要求1所述的方法,其中,所述利用遗传算法对所述待压缩神经网络模型执行压缩处理,包括:
以基于压缩的适应度值为标准,对所述待压缩神经网络模型所对应的染色体个体执行遗传操作,以产生适应度值最优的染色体个体;
利用所述预置的训练样本对所述适应度值最优的染色体个体所对应的神经网络模型进行训练,以获得所述压缩处理后的神经网络模型。
3.根据权利要求2所述的方法,其中,所述对所述待压缩神经网络模型所对应的染色体个体执行遗传操作,以产生适应度值最优的染色体个体,包括:
根据所述结构信息,对所述待压缩神经网络模型进行编码,以得到一染色体;
根据所述染色体,进行群体初始化生成初始群体;
计算群体中染色体个体的适应度值;
判断是否达到终止条件;
若未达到所述终止条件,则以适应度值为标准,选择部分适应度值满足要求的染色体个体,执行复制、交叉或变异操作,从而产生新一代群体,然后返回所述计算群体中染色体个体的适应度值步骤;
若达到所述终止条件,则输出所述适应度值最优的染色体个体。
4.根据权利要求3所述的方法,其中,所述计算群体中染色体个体的适应度值,包括:
分别计算所述染色体个体基于精度和基于压缩的适应度值;
相应的,所述以适应度值为标准,选择部分适应度值满足要求的染色体个体,执行复制、交叉或变异操作,从而产生新一代群体,包括:
根据所述基于精度的适应度值,获取所述群体中染色体个体的第一选择概率,根据所述第一选择概率选择第一染色体个体,以及,根据所述基于压缩的适应度值,获取所述群体中染色体个体的第二选择概率,根据所述第二选择概率从所述第一染色体个体中选择第二染色体个体;对所述第二染色体个体执行复制、交叉或变异操作,从而产生新一代群体。
5.神经网络模型压缩装置,包括:
获取模块,用于获取经训练后的待压缩神经网络模型的结构信息;
压缩模块,用于根据所述结构信息,利用遗传算法对所述待压缩神经网络模型执行压缩处理,其中,所述压缩处理后的神经网络模型基于预置的训练样本的精度不低于预设精度。
6.根据权利要求5所述的装置,其中,所述压缩模块包括:
遗传操作子模块,用于以基于压缩的适应度值为标准,对所述待压缩神经网络模型所对应的染色体个体执行遗传操作,以产生适应度值最优的染色体个体;
训练子模块,用于利用所述预置的训练样本对所述适应度值最优的染色体个体所对应的神经网络模型进行训练,以获得所述压缩处理后的神经网络模型。
7.根据权利要求6所述的装置,其中,所述遗传操作子模块包括:
编码单元,用于根据所述结构信息,对所述待压缩神经网络模型进行编码,以得到一染色体;
初始化单元,用于根据所述染色体,进行群体初始化生成初始群体;
计算单元,用于计算群体中染色体个体的适应度值;
判断单元,用于判断是否达到终止条件;
遗传操作单元,用于若未达到所述终止条件,则以适应度值为标准,选择部分适应度值满足要求的染色体个体,执行复制、交叉或变异操作,从而产生新一代群体;
输出单元,用于若达到所述终止条件,则输出所述适应度值最优的染色体个体。
8.根据权利要求7所述的装置,其中,所述计算单元进一步用于:
分别计算所述染色体个体基于精度和基于压缩的适应度值;
相应的,所述遗传操作单元进一步用于:
根据所述基于精度的适应度值,获取所述群体中染色体个体的第一选择概率,根据所述第一选择概率选择第一染色体个体,以及,根据所述基于压缩的适应度值,获取所述群体中染色体个体的第二选择概率,根据所述第二选择概率从所述第一染色体个体中选择第二染色体个体;对所述第二染色体个体执行复制、交叉或变异操作,从而产生新一代群体。
9.一种计算机设备,包括:
处理器;以及
存储器,其上存储有可执行指令,其中,所述可执行指令当被执行时使得所述处理器执行权利要求1-4任一项所述的方法。
10.一种计算机可读介质,其上存储有可执行指令,其中,所述可执行指令当被执行时使得计算机执行权利要求1-4任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811030922.1A CN109299780A (zh) | 2018-09-05 | 2018-09-05 | 神经网络模型压缩方法、装置和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811030922.1A CN109299780A (zh) | 2018-09-05 | 2018-09-05 | 神经网络模型压缩方法、装置和计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109299780A true CN109299780A (zh) | 2019-02-01 |
Family
ID=65166072
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811030922.1A Pending CN109299780A (zh) | 2018-09-05 | 2018-09-05 | 神经网络模型压缩方法、装置和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109299780A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110276448A (zh) * | 2019-06-04 | 2019-09-24 | 深圳前海微众银行股份有限公司 | 一种模型压缩方法及装置 |
WO2021259106A1 (zh) * | 2020-06-22 | 2021-12-30 | 深圳鲲云信息科技有限公司 | 神经网络芯片的优化方法、系统、设备和存储介质 |
CN116185307A (zh) * | 2023-04-24 | 2023-05-30 | 之江实验室 | 一种模型数据的存储方法、装置、存储介质及电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103971162A (zh) * | 2014-04-04 | 2014-08-06 | 华南理工大学 | 一种基于遗传算法改进bp神经网络的方法 |
CN108038546A (zh) * | 2017-12-29 | 2018-05-15 | 百度在线网络技术(北京)有限公司 | 用于压缩神经网络的方法和装置 |
-
2018
- 2018-09-05 CN CN201811030922.1A patent/CN109299780A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103971162A (zh) * | 2014-04-04 | 2014-08-06 | 华南理工大学 | 一种基于遗传算法改进bp神经网络的方法 |
CN108038546A (zh) * | 2017-12-29 | 2018-05-15 | 百度在线网络技术(北京)有限公司 | 用于压缩神经网络的方法和装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110276448A (zh) * | 2019-06-04 | 2019-09-24 | 深圳前海微众银行股份有限公司 | 一种模型压缩方法及装置 |
CN110276448B (zh) * | 2019-06-04 | 2023-10-24 | 深圳前海微众银行股份有限公司 | 一种模型压缩方法及装置 |
WO2021259106A1 (zh) * | 2020-06-22 | 2021-12-30 | 深圳鲲云信息科技有限公司 | 神经网络芯片的优化方法、系统、设备和存储介质 |
CN116185307A (zh) * | 2023-04-24 | 2023-05-30 | 之江实验室 | 一种模型数据的存储方法、装置、存储介质及电子设备 |
CN116185307B (zh) * | 2023-04-24 | 2023-07-04 | 之江实验室 | 一种模型数据的存储方法、装置、存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109165720A (zh) | 神经网络模型压缩方法、装置和计算机设备 | |
CN109272497A (zh) | 产品表面缺陷检测方法、装置和计算机设备 | |
KR102403494B1 (ko) | 생성적 대립 네트워크에 기반한 도메인 간 관계를 학습하는 방법 | |
CN107632987B (zh) | 一种对话生成方法及装置 | |
CN113905391B (zh) | 集成学习网络流量预测方法、系统、设备、终端、介质 | |
CN112818646B (zh) | 基于生成对抗网络和动态编辑模块的根据文本编辑图片的方法 | |
CN109074512A (zh) | 使用神经网络压缩图像 | |
CN111723937A (zh) | 多媒体数据的描述信息的生成方法、装置、设备及介质 | |
CN109299780A (zh) | 神经网络模型压缩方法、装置和计算机设备 | |
CN112418292B (zh) | 一种图像质量评价的方法、装置、计算机设备及存储介质 | |
CN111709493B (zh) | 对象分类方法、训练方法、装置、设备及存储介质 | |
CN107391549A (zh) | 基于人工智能的新闻召回方法、装置、设备及存储介质 | |
JP7408799B2 (ja) | ニューラルネットワークモデルの圧縮 | |
EP3744008B1 (en) | Electronic apparatus for compression of data and compression method thereof | |
WO2022126448A1 (zh) | 一种基于演化学习的神经网络结构搜索方法和系统 | |
CN108959388A (zh) | 信息生成方法及装置 | |
KR20210126102A (ko) | 신경망 모델 압축/압축해제를 위한 방법 및 장치 | |
CN110516724A (zh) | 可视化作战场景的高性能多层字典学习特征图像处理方法 | |
ES2270930T3 (es) | Compresion de prototipos hmm (modelos de markov escondidos). | |
CN114358257A (zh) | 神经网络剪枝方法及装置、可读介质和电子设备 | |
CN109166118A (zh) | 织物表面属性检测方法、装置及计算机设备 | |
CN111797220A (zh) | 对话生成方法、装置、计算机设备和存储介质 | |
CN112070019A (zh) | 一种人脸识别方法、装置、电子设备和存储介质 | |
CN112840358B (zh) | 用于深度神经网络的基于光标的自适应量化 | |
CN113762505A (zh) | 一种卷积神经网络的按通道l2范数聚类剪枝方法 |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20190201 |