CN111985597B - 模型压缩方法及装置 - Google Patents
模型压缩方法及装置 Download PDFInfo
- Publication number
- CN111985597B CN111985597B CN201910430876.2A CN201910430876A CN111985597B CN 111985597 B CN111985597 B CN 111985597B CN 201910430876 A CN201910430876 A CN 201910430876A CN 111985597 B CN111985597 B CN 111985597B
- Authority
- CN
- China
- Prior art keywords
- model
- generator
- generation
- sub
- network structure
- 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
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/004—Artificial life, i.e. computing arrangements simulating life
- G06N3/006—Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/12—Computing arrangements based on biological models using genetic models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/12—Computing arrangements based on biological models using genetic models
- G06N3/126—Evolutionary algorithms, e.g. genetic algorithms or genetic programming
Abstract
本申请实施例提供模型压缩方法及装置,用于解决现有的压缩算法直接应用在生成器模型上不能取得令人满意的结果的问题,包括:对压缩前的生成器模型的网络结构进行二值编码,得到包括M个第一代生成器子模型的网络结构的第一代子群;获取每个第一代生成器子模型的网络结构的适应值;根据适应值和遗传算法,确定第N代子群中适应值最优的第N代生成器子模型的网络结构,第N代子群中M个第N代生成器子模型的网络结构的适应值的平均值与第(N‑1)代子群中M个第(N‑1)代生成器子模型的网络结构的适应值的平均值的差值小于设定值;根据压缩前的生成器模型中的网络参数和适应值最优的第N代生成器子模型的网络结构,确定压缩后的生成器模型。
Description
技术领域
本申请涉及计算机视觉领域,尤其涉及模型压缩方法及装置。
背景技术
随着手机等智能终端的广泛普及,基于移动端的图像风格迁移或者人像渲染等应用有着广泛的需求,在智能相机、移动社交、或虚拟穿戴等领域有着巨大的应用前景。而生成对抗神经网络(generative adversarial network,GAN)模型则在图像风格迁移、人像渲染等应用中取得了良好的效果。比如,图1所示为GAN模型在人像渲染中的结果示意图。
然而,现有的GSN模型中的生成器模型由于其本身输出结果和优化目标的特点,往往需要较大的内存,并且运行这些生成器模型通常需要较大的计算开销,一般只能在图形处理器(graphics processing unit,GPU)平台上运行,不能直接将这些生成器模型迁移到移动端上。而现有的压缩算法都是针对GSN模型中的判别器模型设计的,直接应用在生成器模型上不能取得令人满意的结果。
发明内容
本申请实施例提供模型压缩方法及装置,用于解决现有的压缩算法直接应用在生成器模型上不能取得令人满意的结果的问题。
为达到上述目的,本申请的实施例采用如下技术方案:
第一方面,提供一种模型压缩方法,该方法包括:获取压缩前的生成器模型;对该压缩前的生成器模型的网络结构进行二值编码,得到第一代子群,该第一代子群包括M个第一代生成器子模型的网络结构,其中,每个第一代生成器子模型的网络结构对应一组固定长度的二值编码,M为大于1的正整数;获取该每个第一代生成器子模型的网络结构的适应值;根据该每个第一代生成器子模型的网络结构的适应值,结合遗传算法,确定第N代子群中适应值最优的第N代生成器子模型的网络结构,N为大于1的正整数,其中,该第N代子群包括M个第N代生成器子模型的网络结构,每个第N代生成器子模型的网络结构对应一组该固定长度的二值编码,该M个第N代生成器子模型的网络结构的适应值的平均值与第(N-1)代子群中M个第(N-1)代生成器子模型的网络结构的适应值的平均值的差值小于设定值;根据该压缩前的生成器模型中的网络参数和该适应值最优的第N代生成器子模型的网络结构,确定压缩后的生成器模型。本申请实施例提供的模型压缩方法通过对生成器模型的网络结构进行全局二值编码压缩,以及基于生成器子模型的网络结构的适应值计算方法和遗传算法自动选择压缩,一方面,使得压缩后的生成器模型的网络参数量小于压缩前的生成器模型的网络参数量;另一方面,使得压缩后的生成器模型的FLOPs小于压缩前的生成器模型的FLOPs,在CPU平台上单张图片的平均耗时降低;又一方面,在压缩网络参数量相当的情况下,基于本申请实施例提供的模型压缩方法得到的生成器模型能保持风格迁移性能,传统压缩方法失效;再一方面,对不同的图像转换任务,基于本申请实施例提供的模型压缩方法得到的生成器模型的网络结构不同,相对复杂的任务保留参数较多,简单的任务保留参数较少,模型结构具有任务相关的独特性,最大程度减少参数冗余。综上,基于本申请实施例提供的模型压缩方法,可以解决现有的压缩算法直接应用在生成器模型上不能取得令人满意的结果的问题。
在一种可能的设计中,该根据该每个第一代生成器子模型的网络结构的适应值,结合遗传算法,确定第N代子群中适应值最优的第N代生成器子模型的网络结构,包括:重复执行下述步骤S1,直至得到第N代子群:步骤S1、从第k代子群中选出适应值最优的第k代生成器子模型的网络结构作为第(k+1)代子群中的一个第(k+1)代生成器子模型的网络结构,k为小于(N-1)的正整数;根据该遗传算法,按照第k代子群中M个生成器子模型的网络结构的适应值大小进行概率选择,并按照预设的概率进行选择、交叉和突变操作,得到第(k+1)代子群中的其他(M-1)个第(k+1)代生成器子模型的网络结构;确定第N代子群中适应值最优的第N代生成器子模型的网络结构。基于该方案,可以确定出第N代子群中适应值最优的第N代生成器子模型的网络结构。
在一种可能的设计中,第p代生成器子模型的网络结构的适应值是根据该第p代生成器子模型的网络参数量的归一化值、生成器感知损失和判别器感知损失确定的,该生成器感知损失用于表征第p代生成器子模型的输出结果与第p-1代生成器子模型的输出结果的差值;该判别器感知损失用于表征该第p代生成器子模型的输出结果与该第p-1代生成器子模型的输出结果分别再经过判别器后的输出结果的差值,其中,p为1至N的正整数,第0代生成器子模型为该压缩前的生成器模型。基于该方案,可以确定出第p代生成器子模型的网络结构的适应值。
在一种可能的设计中,该第p代生成器子模型的网络参数量的归一化值、该生成器感知损失和该判别器感知损失满足如下第一公式:其中,f(q)表示该第p代生成器子模型的网络结构的适应值;p(q)表示该第p代生成器子模型的网络参数量的归一化值,λ和γ为设定值;/>表示该生成器感知损失;/>表示该判别器感知损失,q表示该第p代生成器子模型的网络结构的所有卷积层的二值编码。
在一种可能的设计中,p(q)满足如下第二公式:其中,ql-1表示该第p代生成器子模型的网络结构中第(l-1)层卷积的二值编码;ql表示该第p代生成器子模型的网络结构中第l层卷积的二值编码;Hl表示该第p代生成器子模型的网络结构的第l层卷积的高度;Wl表该第p代生成器子模型的网络结构的第l层卷积的宽度;Cl表示该第p代生成器子模型的网络结构的第l层卷积的通道数;Nl表示该第p代生成器子模型的网络结构的第l层卷积的个数;||||1表示L1范数;∑表示求和。
在一种可能的设计中,该方法还包括:根据如下第三公式确定该生成器感知损失,该第三公式包括:其中,xi表示第i张输入图片,m表示输入图片的张数,G(xi)表示第i张输入图片经过该第p-1代生成器子模型的输出结果;/>表示该第i张输入图片经过该第p代生成器子模型的输出结果,∑表示求和;/>表示L2范数差。基于该方案,可以确定出生成器感知损失。
在一种可能的设计中,该方法还包括:根据如下第四公式确定该判别器感知损失,该第四公式包括:其中,xi表示第i张输入图片,m表示输入图片的张数,D(G(xi))表示第i张输入图片经过该第p-1代生成器子模型的输出结果再经过判别器后的输出结果;/>表示该第i张输入图片经过该第p代生成器子模型的输出结果再经过该判别器后的输出结果,∑表示求和;/>表示L2范数差。基于该方案,可以确定出判别器感知损失。
在一种可能的设计中,该对该压缩前的生成器模型的网络结构进行二值编码,得到第一代子群,包括:若该压缩前的生成器模型的网络结构中的第一通道对应的二值编码为0,去除该第一通道相关的计算单元;或者,若该压缩前的生成器模型的网络结构中的第二通道对应的二值编码为1,保留该第二通道相关的计算单元,其中,该第一通道或该第二通道对应该压缩前的生成器模型的网络结构中的任一层卷积的一个卷积核。基于该方案,通过对压缩前的生成器模型的网络结构进行二值编码,可以使得压缩后的生成器模型的网络参数量小于压缩前的生成器模型的网络参数量以及使得压缩后的生成器模型的FLOPs小于压缩前的生成器模型的FLOPs,在CPU平台上单张图片的平均耗时降低。
第二方面,提供了一种模型压缩方法,该方法包括:获取压缩前的第一生成器模型和第二生成器模型,该第一生成器模型和该第二生成器模型为对称的生成器模型;对该压缩前的第一生成器模型的网络结构进行二值编码,得到该第一生成器模型对应的第一代子群;以及,对该压缩前的第二生成器模型的网络结构进行二值编码,得到该第二生成器模型对应的第一代子群;该第一生成器模型对应的第一代子群包括M1个第一代生成器子模型的网络结构,该第二生成器模型对应的第一代子群包括M2个第一代生成器子模型的网络结构,每个第一代生成器子模型的网络结构对应一组固定长度的二值编码,M1和M2均为大于1的正整数;获取该每个第一代生成器子模型的网络结构的适应值;根据该每个第一代生成器子模型的网络结构的适应值,结合遗传算法,确定第一生成器模型对应的第N代子群中适应值最优的第N代生成器子模型的网络结构以及第二生成器模型对应的第N代子群中适应值最优的第N代生成器子模型的网络结构,N为大于1的正整数,其中,该第一生成器模型对应的第N代子群包括M1个第N代生成器子模型的网络结构,该第二生成器模型对应的第N代子群包括M2个第N代生成器子模型的网络结构,每个第N代生成器子模型的网络结构对应一组该固定长度的二值编码,该第一生成器模型对应的M1个第N代生成器子模型的网络结构的适应值的平均值与该第一生成器模型对应的M1个第(N-1)代生成器子模型的网络结构的适应值的平均值的差值小于第一设定值,该第二生成器模型对应的M2个第N代生成器子模型的网络结构的适应值的平均值与该第二生成器模型对应的M2个第(N-1)代生成器子模型的网络结构的适应值的平均值的差值小于第二设定值;根据该压缩前的第一生成器模型中的网络参数和该第一生成器模型对应的第N代子群中适应值最优的第N代生成器子模型的网络结构,确定压缩后的第一生成器模型;以及,根据该压缩前的第二生成器模型中的网络参数和该第二生成器模型对应的第N代子群中适应值最优的第N代生成器子模型的网络结构,确定压缩后的第二生成器模型。本申请实施例提供的模型压缩方法通过对生成器模型的网络结构进行全局二值编码压缩,以及基于生成器子模型的网络结构的适应值计算方法和遗传算法自动选择压缩,一方面,使得压缩后的生成器模型的网络参数量小于压缩前的生成器模型的网络参数量;另一方面,使得压缩后的生成器模型的FLOPs小于压缩前的生成器模型的FLOPs,在CPU平台上单张图片的平均耗时降低;又一方面,在压缩网络参数量相当的情况下,基于本申请实施例提供的模型压缩方法得到的生成器模型能保持风格迁移性能,传统压缩方法失效;再一方面,对不同的图像转换任务,基于本申请实施例提供的模型压缩方法得到的生成器模型的网络结构不同,相对复杂的任务保留参数较多,简单的任务保留参数较少,模型结构具有任务相关的独特性,最大程度减少参数冗余。综上,基于本申请实施例提供的模型压缩方法,可以解决现有的压缩算法直接应用在生成器模型上不能取得令人满意的结果的问题。
在一种可能的设计中,该根据该每个第一代生成器子模型的网络结构的适应值,结合遗传算法,确定该第一生成器模型对应的第N代子群中适应值最优的第N代生成器子模型的网络结构以及该第二生成器模型对应的第N代子群中适应值最优的第N代生成器子模型的网络结构,包括:重复执行下述步骤S1和步骤S2,直至得到第一生成器模型对应的第N代子群以及第二生成器模型对应的第N代子群:步骤S1、将该第一生成器模型对应的第k代子群中适应值最优的第k代生成器子模型的网络结构作为该第二生成器模型对应的第(k+1)代子群中的一个第(k+1)代生成器子模型的网络结构;根据该遗传算法,按照该第二生成器模型对应的第k代子群中M2个生成器子模型的网络结构的适应值大小进行概率选择,并按照预设的概率进行选择、交叉和突变操作,得到该第二生成器模型对应的第k+1代子群中的其他(M2-1)个第k+1代生成器子模型的网络结构,k为小于(N-1)的正整数;步骤S2、将该第二生成器模型对应的第k+1代子群中适应值最优的第k+1代生成器子模型的网络结构作为该第一生成器模型对应的第(k+1)代子群中的一个第k+1代生成器子模型的网络结构;根据该遗传算法,按照该第一生成器模型对应的第k代子群中M1个生成器子模型的网络结构的适应值大小进行概率选择,并按照预设的概率进行选择、交叉和突变操作,得到该第一生成器模型对应的第k+1代子群中的其他(M1-1)个第k+1代生成器子模型的网络结构;确定该第一生成器模型对应的第N代子群中适应值最优的第N代生成器子模型的网络结构以及该第二生成器模型对应的第N代子群中适应值最优的第N代生成器子模型的网络结构。基于该方案,可以确定出第一生成器模型对应的第N代子群中适应值最优的第N代生成器子模型的网络结构以及第二生成器模型对应的第N代子群中适应值最优的第N代生成器子模型的网络结构。
第三方面,提供了一种模型压缩装置用于实现上述各种方法。所述模型压缩装置包括实现上述方法相应的模块、单元、或手段(means),该模块、单元、或means可以通过硬件实现,软件实现,或者通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块或单元。
第四方面,提供了一种模型压缩装置,包括:处理器和存储器;该存储器用于存储计算机指令,当该处理器执行该指令时,以使该模型压缩装置执行上述第一方面或第二方面所述的方法。
第五方面,提供了一种模型压缩装置,包括:处理器;所述处理器用于与存储器耦合,并读取存储器中的指令之后,根据所述指令执行如上述第一方面或第二方面所述的方法。
第六方面,提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机可以执行上述第一方面或第二方面所述的方法。
第七方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机可以执行上述第一方面或第二方面所述的方法。
第八方面,提供了一种装置(例如,该装置可以是芯片或芯片系统),该装置包括处理器,用于实现上述第一方面或第二方面中所涉及的功能。在一种可能的设计中,该装置还包括存储器,该存储器,用于保存必要的程序指令和数据。该装置是芯片系统时,可以由芯片构成,也可以包含芯片和其他分立器件。
其中,第三方面至第八方面中任一种设计方式所带来的技术效果可参见上述第一方面或第二方面中不同设计方式所带来的技术效果,此处不再赘述。
附图说明
图1为现有的GAN模型在人像渲染中的结果示意图;
图2为现有的CycleGAN提出的利用GAN模型完成图像域转换的结构图;
图3为城市街景数据集中的两个图像转换域的任务示意图;
图4为本申请实施例提供的一种模型压缩方法流程示意图;
图5为本申请实施例提供的每一组固定长度的二值编码与压缩后的生成器模型的对照示意图;
图6为本申请实施例提供的生成器模型的全局二值编码示意图;
图7为本申请实施例提供的由压缩前的生成器模型得到适应值最优的第N代生成器子模型的流程示意图;
图8为本申请实施例提供的另一种模型压缩方法流程示意图;
图9为本申请实施例提供的协同进化算法交替迭代优化示意图;
图10为本申请实施例提供的基于自动压缩图像艺术风格转换模型;
图11为本申请实施例提供的生成器模型压缩前后的图像艺术风格转换效果图;
图12为本申请实施例提供的快速风格迁移示意图;
图13为本申请实施例提供的快速风格迁移模型压缩效果示意图;
图14为本申请实施例提供的马和斑马互相转换的生成模型压缩前后转换效果对比示意图;
图15为本申请实施例提供的模型压缩装置的结构示意图一;
图16为本申请实施例提供的模型压缩装置的结构示意图二。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。其中,在本申请的描述中,除非另有说明,“/”表示前后关联的对象是一种“或”的关系,例如,A/B可以表示A或B;本申请中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,其中A,B可以是单数或者复数。并且,在本申请的描述中,除非另有说明,“多个”是指两个或多于两个。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。另外,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。同时,在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念,便于理解。
此外,本申请实施例描述的各种场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着其他类似新场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
如图2所示,为CycleGAN提出的利用GAN模型完成图像域转换的结构图。其中,利用GAN模型的训练方法,将风格A图片和风格B图片作为两个域,生成器模型GAB完成从风格A图片到风格B图片的迁移,生成器模型GBA完成从风格B图片到风格A图片的迁移,判别器模型DB判断图片来自真实的风格B图片还是由生成器模型GAB生成的风格B图片。通过对抗训练的方法得到的生成器模型GAB可以完成风格迁移的任务。但是,目前GSN模型中的生成器模型(也可以称之为生成式模型)包含(但不限于)如下的具体问题:
技术问题1、生成器模型的网络参数量过大
现有常用的用于图像风格转换的生成器模型的网络参数量过大,每个卷积层的网络参数量常常能够达到几万、几十万,整个生成器模型的N层卷积层的参数加起来,能够达到几千万(用32位浮点数表示,需要上百兆字节的内存或缓存)。而在移动端中,内存和缓存资源非常有限,因此如何减少卷积网络参数量,是个亟待解决的问题。
技术问题2、生成器模型的计算开销大
生成器模型中的卷积操作计算量巨大,一个生成器模型含有几十万网络参数量的卷积核,卷积操作的浮点计算次数(floating point operations,FLOPs)可达几千万。在GPU上能够实时运算的生成器模型到了移动端则十分缓慢。在移动端的计算资源难以满足现有生成器模型的实时运算的情况下,如何降低卷积计算量,减少生成器模型的计算开销,是个亟待解决的问题。
技术问题3、传统压缩算法的无效性
传统的针对卷积神经网络的压缩和加速算法都是针对分类或检测等判别器模型(也可以称之为判别式模型)设计,这些算法的前提假设是压缩前后模型在像素级别完全一致,而对于图像风格迁移等生成任务,不需要压缩前后生成式模型产生的图像结果完全一致,只需要风格一致即可,所以传统的压缩算法对于生成器模型的压缩任务无效。
技术问题4、不同图像风格迁移任务的参数冗余
不同图像域之间的风格迁移难度是不同的,比如城市地形数据集中的街景和街景分割图。如图3所示,从街景分割图转换到街景需要恢复大量细节,而反过来从街景转换到街景分割图则需要抹去大量细节,两种任务的难易程度显然是不同的。而在传统的生成对抗的图像转换的任务中,两个域之间的生成器模型的结构一样,网络参数量和计算复杂度一样,所以传统的生成对抗训练的生成器模型的参数存在冗余,且每个图像转换任务的冗余程度不一样。
基于上述问题,本申请实施例提供了一种模型压缩方法,如图4所示,包括如下步骤:
S401、获取压缩前的生成器模型。
S402、对压缩前的生成器模型的网络结构进行二值编码,得到第一代子群。
其中,第一代子群包括M个第一代生成器子模型的网络结构,每个第一代生成器子模型的网络结构对应一组固定长度的二值编码,M为大于1的正整数。
可选的,本申请实施例中的生成器子模型也可以称之为子个体,在此统一说明,以下不再赘述。
可选的,本申请实施例中的生成器模型的网络结构或者生成器子模型的网络结构也可以称之为生成卷积神经网络或生成网络等,在此统一说明,以下不再赘述。
S403、获取每个第一代生成器子模型的网络结构的适应值。
S404、根据每个第一代生成器子模型的网络结构的适应值,结合遗传算法,确定第N代子群中适应值最优的第N代生成器子模型的网络结构,N为大于1的正整数。
其中,第N代子群包括M个第N代生成器子模型的网络结构,每个第N代生成器子模型的网络结构对应一组固定长度的二值编码,M个第N代生成器子模型的网络结构的适应值的平均值与第(N-1)代子群中M个第(N-1)代生成器子模型的网络结构的适应值的平均值的差值小于设定值。
S405、根据压缩前的生成器模型中的网络参数和适应值最优的第N代生成器子模型的网络结构,确定压缩后的生成器模型。
其中,在上述步骤S402中:
对压缩前的生成器模型的网络结构进行二值编码,得到第一代子群,可以包括:若压缩前的生成器模型的网络结构中的第一通道对应的二值编码为0,去除第一通道相关的计算单元;或者,若压缩前的生成器模型的网络结构中的第二通道对应的二值编码为1,保留第二通道相关的计算单元,其中,第一通道或第二通道对应压缩前的生成器模型的网络结构中的任一层卷积的一个卷积核。
具体的,本申请实施例中的生成器模型的网络结构由若干层卷积神经网络和反卷积神经网络组成,每一层卷积神经网络和反卷积神经网络由若干个卷积核构成,这些卷积核的多少决定了生成器模型的网络参数量和计算量。但是,一个生成器模型的网络结构确定时,该生成器模型中的所有卷积核就确定了,我们可以用一组固定长度的二值编码表示所有的卷积核是否参与压缩后的生成器模型的计算,0表示去除该卷积核,则该卷积核相关的所有的计算就不需要了,1表示保留该卷积核,则与该卷积核相关的计算得到保留,如公式(1)所示。
其中,ql(n)表示生成器模型的网络结构的第l层卷积的第n个卷积核的二值编码;表示权重参数。公式(1)的含义为:若ql(n),则给生成器模型的网络结构的第l层卷积的第n个卷积核的网络参数乘以0,否则给生成器模型的网络结构的第l层卷积的第n个卷积核的网络参数乘以1。
其中,采用M组固定长度的二值编码分别对压缩前的生成器模型的网络结构进行二值编码,则可以得到包括M个第一代生成器子模型的网络结构的第一代子群,其中,每个第一代生成器子模型的网络结构对应一组固定长度的二值编码。
如图5所示,每一组对应的固定长度的二值编码就对于一个特定的压缩后的生成器子模型的网络结构,其中编码全部为1的是压缩前的完整生成器模型的网络结构。压缩后的生成器子模型的网络结构相比于压缩前的生成器模型的网络结构,去除了一定数量的卷积核,因此压缩后的生成器子模型相比于压缩前的生成器模型的网络参数量变少,在计算过程中涉及到的卷积计算量也相应减少。
对于多层卷积计算,经过二值编码后的剩余部分如图6所示。其中,第一层卷积是相应的二值编码为0的通道全部去除,对于第二层卷积及后面的卷积层来说,不仅通道编码为0的通道相应去除,而且与前面已经去除的卷积层相关的计算单元也相应去除,所以计算量进一步减少。
其中,在上述步骤S404中:
根据每个第一代生成器子模型的网络结构的适应值,结合遗传算法,确定第N代子群中适应值最优的第N代生成器子模型的网络结构,包括:
重复执行下述步骤S1,直至得到第N代子群:
步骤S1、从第k代子群中选出适应值最优的第k代生成器子模型的网络结构作为第k+1代子群中的一个第k+1代生成器子模型的网络结构,k为小于(N-1)的正整数;根据遗传算法,按照第k代子群中M个生成器子模型的网络结构的适应值大小进行概率选择,并按照预设的概率进行选择、交叉和突变操作,得到第k+1代子群中的其他(M-1)个第k+1代生成器子模型的网络结构;确定第N代子群中适应值最优的第N代生成器子模型的网络结构。
示例性的,如图7所示,根据压缩前的生成器模型的网络结构,可以得到第一代子群G1-M;其中,第一代子群G1-M包括第一代生成器子模型的网络结构G1_1、第一代生成器子模型的网络结构G1_2、……、第一代生成器子模型的网络结构G1_M。其中,第一代生成器子模型的网络结构G1_1对应适应值1_1、第一代生成器子模型的网络结构G1_2对应适应值1_2、……、第一代生成器子模型的网络结构G1_M对应适应值1_M。
进一步的,从第一代子群中选出适应值最优的第一代生成器子模型的网络结构作为第二代子群中的一个第二代生成器子模型的网络结构;根据遗传算法,按照第一代子群中M个生成器子模型的网络结构的适应值大小进行概率选择,并按照预设的概率进行选择、交叉和突变操作,得到第二代子群中的其他(M-1)个第二代生成器子模型的网络结构。比如,如图7所示,第二代子群G2-M包括第二代生成器子模型的网络结构G2_1、第二代生成器子模型的网络结构G2_2、……、第二代生成器子模型的网络结构G2_M。其中,第二代生成器子模型的网络结构G2_1对应适应值2_1、第二代生成器子模型的网络结构G2_2对应适应值2_2、……、第二代生成器子模型的网络结构G2_M对应适应值2_M。
以此类推,从第(N-1)代子群中选出适应值最优的第(N-1)代生成器子模型的网络结构作为第N代子群中的一个第N代生成器子模型的网络结构;根据遗传算法,按照第(N-1)代子群中M个生成器子模型的网络结构的适应值大小进行概率选择,并按照预设的概率进行选择、交叉和突变操作,得到第N代子群中的其他(M-1)个第N代生成器子模型的网络结构。比如,如图7所示,第N代子群GN-M包括第N代生成器子模型的网络结构GN_1、第N代生成器子模型的网络结构GN_2、……、第N代生成器子模型的网络结构GN_M。其中,第N代生成器子模型的网络结构GN_1对应适应值N_1、第N代生成器子模型的网络结构GN_2对应适应值N_2、……、第N代生成器子模型的网络结构GN_M对应适应值N_M。
最后,可以得到第N代子群中适应值最优的第N代生成器子模型的网络结构。
其中,本申请实施例中,M个第N代生成器子模型的网络结构的适应值的平均值与第(N-1)代子群中M个第(N-1)代生成器子模型的网络结构的适应值的平均值的差值小于设定值。也就是说,第N代子群为生成器子模型的网络结构的适应值趋于稳定的一代子群。
其中,根据遗传算法,按照预设的概率进行选择、交叉和突变操作,得到下一代子群中的生成器子模型的网络结构的示例可以如下:
示例性的,假设上一代生成器子模型(或者上一代生成器模型)的网络结构对应的二值编码为0101 0000 010,则经过选择操作后,得到的下一代生成器子模型的网络结构对应的二值编码可以为0101 0000 010。
或者,示例性的,假设上一代生成器子模型1(或者上一代生成器模型1)的网络结构对应的二值编码为01010 1110010 0101,上一代生成器子模型2(或者上一代生成器模型2)的网络结构对应的二值编码为01010 0101011 0110,则经过交叉操作后,得到的下一代生成器子模型1的网络结构对应的二值编码可以为01010 0101011 0101,下一代生成器子模型2的网络结构对应的二值编码可以为01010 1110010 0110。
或者,示例性的,假设上一代生成器子模型(或者上一代生成器模型)的网络结构对应的二值编码为100 10010101 101010,则经过突变操作后,得到的下一代生成器子模型的网络结构对应的二值编码可以为100 01101010 101010。
其中,在上述步骤S403和步骤S404中:
考虑到与判别器模型的优化目标不同,生成器模型的优化并不需要保证压缩前后模型输出结果完全一致,只需要保证压缩后输出结果的域一致即可,因此本申请实施例引入判别器的输出,通过计算压缩前后生成器模型在判别器的差异来计算生成器模型的网络结构的适应值。
示例性的,第p代生成器子模型的网络结构的适应值是根据第p代生成器子模型的网络参数量的归一化值、生成器感知损失和判别器感知损失确定的,生成器感知损失用于表征第p代生成器子模型的输出结果与第p-1代生成器子模型的输出结果的差值;判别器感知损失用于表征第p代生成器子模型的输出结果与第p-1代生成器子模型的输出结果分别再经过判别器后的输出结果的差值,其中,p为1至N的正整数,第0代生成器子模型为压缩前的生成器模型。
可选的,本申请实施例中,第p代生成器子模型的网络参数量的归一化值、生成器感知损失和判别器感知损失满足如下公式(2):
其中,f(q)表示第p代生成器子模型的网络结构的适应值;p(q)表示第p代生成器子模型的网络参数量的归一化值,λ和γ为设定值;表示生成器感知损失;/>表示判别器感知损失,q表示第p代生成器子模型的网络结构的所有卷积层的二值编码。
可选的,p(q)可以满足如下公式(3):
其中,ql-1表示第p代生成器子模型的网络结构中第(l-1)层卷积的二值编码;ql表示第p代生成器子模型的网络结构中第l层卷积的二值编码;Hl表示第p代生成器子模型的网络结构的第l层卷积的高度;Wl表第p代生成器子模型的网络结构的第l层卷积的宽度;Cl表示第p代生成器子模型的网络结构的第l层卷积的通道数;Nl表示第p代生成器子模型的网络结构的第l层卷积的个数;||||1表示L1范数;∑表示求和。
可选的,本申请实施例中,可以根据如下公式(4)确定生成器感知损失:
其中,xi表示第i张输入图片,m表示输入图片的张数,G(xi)表示第i张输入图片经过第p-1代生成器子模型的输出结果;表示第i张输入图片经过第p代生成器子模型的输出结果,∑表示求和;/>表示L2范数差。
需要说明的是,上述公式(4)是压缩前后的生成器模型产生图片的L2范数差,物理含义是让压缩前后的生成器模型产生的图片在像素级别相似。
可选的,本申请实施例中,可以根据如下公式(5)确定判别器感知损失包括:
其中,xi表示第i张输入图片,m表示输入图片的张数,D(G(xi))表示第i张输入图片经过第p-1代生成器子模型的输出结果再经过判别器后的输出结果;表示第i张输入图片经过第p代生成器子模型的输出结果再经过判别器后的输出结果,∑表示求和;/>表示L2范数差。
需要说明的是,上述公式(5)是压缩前后的生成器模型产生的图片在原来的判别器模型判别结果的L2差值,物理含义是让压缩前后的生成器模型产生的图片在原来的判别器上的判别结果相近,即让判别器判定压缩前后的生成器产生的图片在风格域一致。
可选的,本申请实施例还提供了一种模型压缩方法,如图8所示,包括如下步骤:
S801、获取压缩前的第一生成器模型和第二生成器模型。其中,第一生成器模型和第二生成器模型为对称的生成器模型;
S802、对压缩前的第一生成器模型的网络结构进行二值编码,得到第一生成器模型对应的第一代子群;以及,对压缩前的第二生成器模型的网络结构进行二值编码,得到第二生成器模型对应的第一代子群。
其中,第一生成器模型对应的第一代子群包括M1个第一代生成器子模型的网络结构,第二生成器模型对应的第一代子群包括M2个第一代生成器子模型的网络结构,每个第一代生成器子模型的网络结构对应一组固定长度的二值编码,M1和M2均为大于1的正整数。
可选的,本申请实施例中的生成器子模型也可以称之为子个体,在此统一说明,以下不再赘述。
可选的,本申请实施例中的生成器模型的网络结构或者生成器子模型的网络结构也可以称之为生成卷积神经网络或生成网络等,在此统一说明,以下不再赘述。
S803、获取每个第一代生成器子模型的网络结构的适应值。
S804、根据每个第一代生成器子模型的网络结构的适应值,结合遗传算法,确定第一生成器模型对应的第N代子群中适应值最优的第N代生成器子模型的网络结构以及第二生成器模型对应的第N代子群中适应值最优的第N代生成器子模型的网络结构,N为大于1的正整数。
其中,第一生成器模型对应的第N代子群包括M1个第N代生成器子模型的网络结构,第二生成器模型对应的第N代子群包括M2个第N代生成器子模型的网络结构,每个第N代生成器子模型的网络结构对应一组固定长度的二值编码,第一生成器模型对应的M1个第N代生成器子模型的网络结构的适应值的平均值与第一生成器模型对应的M1个第(N-1)代生成器子模型的网络结构的适应值的平均值的差值小于第一设定值,第二生成器模型对应的M2个第N代生成器子模型的网络结构的适应值的平均值与第二生成器模型对应的M2个第(N-1)代生成器子模型的网络结构的适应值的平均值的差值小于第二设定值。
S805、根据压缩前的第一生成器模型中的网络参数和第一生成器模型对应的第N代子群中适应值最优的第N代生成器子模型的网络结构,确定压缩后的第一生成器模型;以及,根据压缩前的第二生成器模型中的网络参数和第二生成器模型对应的第N代子群中适应值最优的第N代生成器子模型的网络结构,确定压缩后的第二生成器模型。
其中,上述步骤S802的具体实现可参考图4所示的实施例中的步骤S402,在此不再赘述。
其中,在上述步骤S804中:
根据每个第一代生成器子模型的网络结构的适应值,结合遗传算法,确定第一生成器模型对应的第N代子群中适应值最优的第N代生成器子模型的网络结构以及第二生成器模型对应的第N代子群中适应值最优的第N代生成器子模型的网络结构,包括:
重复执行下述步骤S1和步骤S2,直至得到第一生成器模型对应的第N代子群以及第二生成器模型对应的第N代子群:
步骤S1、将第一生成器模型对应的第k代子群中适应值最优的第k代生成器子模型的网络结构作为第二生成器模型对应的第(k+1)代子群中的一个第(k+1)代生成器子模型的网络结构;根据遗传算法,按照第二生成器模型对应的第k代子群中M2个生成器子模型的网络结构的适应值大小进行概率选择,并按照预设的概率进行选择、交叉和突变操作,得到第二生成器模型对应的第k+1代子群中的其他(M2-1)个第k+1代生成器子模型的网络结构,k为小于(N-1)的正整数;
步骤S2、将第二生成器模型对应的第k+1代子群中适应值最优的第k+1代生成器子模型的网络结构作为第一生成器模型对应的第(k+1)代子群中的一个第k+1代生成器子模型的网络结构;根据遗传算法,按照第一生成器模型对应的第k代子群中M1个生成器子模型的网络结构的适应值大小进行概率选择,并按照预设的概率进行选择、交叉和突变操作,得到第一生成器模型对应的第k+1代子群中的其他(M1-1)个第k+1代生成器子模型的网络结构;
确定第一生成器模型对应的第N代子群中适应值最优的第N代生成器子模型的网络结构以及第二生成器模型对应的第N代子群中适应值最优的第N代生成器子模型的网络结构。
也就是说,本申请实施例中,针对两个图像域的转换问题,引入协同进化算法,对两个对称的生成器模型分别维持一个生成器子群。在每次迭代中,分别用一个子群中适应值最优的生成器子模型的网络结构和另一个子群中的生成器子模型的网络结构进行训练,选出第二个子群中适应值最优的生成器子模型的网络结构,然后将该生成器子模型的网络结构和另一个子群中所有生成器子模型的网络结构进行训练,依次类推,交替迭代优化,最终同时得到两个压缩后的生成器模型的网络结构。
示例性的,如图9所示,生成器A和生成器B为对称的生成器模型,生成器A维持子群A,生成器B维持子群B。在第1次迭代中,用子群A中适应值最优的生成器子模型的网络结构和子群B中的生成器子模型的网络结构进行训练,选出子群B中适应值最优的生成器子模型的网络结构;在第2次迭代中,用子群B中适应值最优的生成器子模型的网络结构和子群A中的生成器子模型的网络结构进行训练,选出子群A中适应值最优的生成器子模型的网络结构,进而用子群A中适应值最优的生成器子模型的网络结构和子群B中的生成器子模型的网络结构进行训练,选出子群B中适应值最优的生成器子模型的网络结构,在后续的迭代中,依次类推,交替迭代优化,最终同时得到压缩后的生成器A的网络结构和压缩后的生成器B的网络结构。
可选的,本申请实施例提供的模型压缩方法可应用于计算机视觉领域的多种图像转化和风格迁移任务,比如:人像美化、虚拟佩戴试穿、人物背景渲染,自动驾驶道路场景生成等。其中每类场景中都可以用到本申请实施例提供的模型压缩方法构建高效的生成器模型。这里举几个具体的例子:
1、视频图像的实时渲染:给图像中的人物添加不同风格的装饰物,在现在的视频通话、短视频拍摄等应用中十分常见和广泛。
2、虚拟佩戴试穿:对视频摄像头拍摄到的人物图像进行渲染,虚拟佩戴上选的帽子、眼镜、衣物等商品。由拍摄到的人物图像生成“穿戴”商品的人物图像。
3、智能相机艺术风格渲染:在智能相机中,对拍摄场景进行多种特定艺术风格的渲染,比如,由一张拍摄的风景图片实时生成梵高风格的风景图片。
4、自动驾驶道路场景生成:自动驾驶模型的训练过程需要大量的道路场景的图片,但是用车辆去现实采集这些不用环境下的道路场景是十分昂贵的,可以由大量的赛车游戏场景图片生成真实的道路场景图片来替代真实采集的道路场景图片。
其中,本申请实施例提供的模型压缩方法适用于上述所有类型的场景、以及其他所有卷积神经网络,包括但不限于上面列举的例子。
下面结合一些应用场景,给出本申请实施例提供的模型压缩方法所带来的技术效果:
示例1、如图10所示,用于图像风格转换的生成器模型的输入是一张相机拍摄的风景图片,经过若干层卷积和反卷积运算,输出图像为转换后的艺术风格图像,其中用于这个图像风格转换的生成器模型是由本申请实施例提供的模型压缩方法压缩得到的。其中,原始的生成器模型网络参数量大,前三层生成卷积网络的卷积核个数分别为64,128,256,经过遗传算法通道选择后,压缩后的生成网络的卷积核个数为27,55和124,第一层变为原来的二分之一左右,第二层和第三层的计算量变为原来的四分之一左右,但是输出图片的风格基本和压缩之前的生成器模型输出的图片的风格保持一致。对于网络其他层的计算量和网络参数量的压缩类似。
示例2、将本申请实施例提供的模型压缩方法应用在风景图到梵高风格图像的转换上。压缩前的生成器模型和基于本申请实施例提供的模型压缩方法得到的压缩后的生成器模型结构的对比如表一所示。其中,在通道数上,压缩后的生成器模型降到压缩前的生成器模型的一半左右,网络参数的压缩比,除了第一层卷积层和最后一层卷积层的网络参数量的压缩比为2倍以上,其他卷积层的网络参数量压缩比都为4倍以上。
表一
如图11所示,为生成器模型压缩前后的从风景图像到梵高风格图像的转换效果。其中,每一组图片由三张图片构成,第一张是输入生成器模型的风景图片,第二张是压缩前的生成器模型产生的图片,第三张是压缩后的生成器模型产生的图片。可以看出,压缩模型在模型大小大规模压缩的情况下,依然较好完成了从风景图片到梵高风格图片的转换。
表二中给出了本申请实施例提供的模型压缩方法得到的压缩后的生成器模型和压缩前的生成器模型在模型参数和计算量大小的对比,在Intel(R)Xeon(R)中央处理器(central processing unit/processor,CPU)E5-2690 v4@2.60GHz进行了测试,压缩后的生成器模型是压缩前的生成器模型的网络参数量和计算量的不到四分之一,在CPU运行时间上,压缩后的生成器模型是压缩前生成器模型的三分之一。
表二
模型大小 | 网络参数量 | FLOPs | 推理时延 | |
压缩前 | 43.42MB | 11378179 | 56887M | 2.26s |
压缩后 | 10.16MB | 2661795 | 13448M | 0.73s |
示例3、针对图像快速风格化的问题,应用本申请实施例提供的模型压缩方法,可以将模型大幅压缩的情况下,保持压缩模型的风格迁移性能。图12描述了快速风格迁移的任务,针对一张拟转换图片,叠加上一幅风格迁移图片,得到一张转换后的风格化图片。图13描述了快速风格迁移模型的压缩效果,风格模型在压缩四倍以上模型内存的情况下,模型内存从原始的6.36MB压缩到1.17MB,可以保持快速风格迁移的效果。
示例4、针对两个图像域的转换问题,比如马和斑马图像域的互相转换问题,应用本申请实施例提供的协同进化算法得到的压缩后的生成器模型的参数如表三所示。由表三可以看出,两个图像转换器在模型内存和FLOPs上压缩4倍以上。其中得到的压缩效果如图14所示。
表三
综上,下面以列表的形式,针对所要解决的技术问题,给出本申请实施例提供的模型压缩方法所带来的有益效果,如表四所示。
表四
上述主要从方法流程角度对本申请实施例提供的方案进行了介绍。相应的,本申请实施例还提供了模型压缩装置,该模型压缩装置用于实现上述各种方法。可以理解的是,上述模型压缩装置为了实现上述方法,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对模型压缩装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
比如,以采用集成的方式划分各个功能模块的情况下,图15示出了一种模型压缩装置150的结构示意图。该模型压缩装置150包括获取模块1501和处理模块1502。其中,一种可能的实现方式中:
获取模块1501,用于获取压缩前的生成器模型;处理模块1502,用于对压缩前的生成器模型的网络结构进行二值编码,得到第一代子群,第一代子群包括M个第一代生成器子模型的网络结构,其中,每个第一代生成器子模型的网络结构对应一组固定长度的二值编码,M为大于1的正整数;获取模块1501,还用于获取每个第一代生成器子模型的网络结构的适应值;处理模块1502,还用于根据每个第一代生成器子模型的网络结构的适应值,结合遗传算法,确定第N代子群中适应值最优的第N代生成器子模型的网络结构,N为大于1的正整数,其中,第N代子群包括M个第N代生成器子模型的网络结构,每个第N代生成器子模型的网络结构对应一组固定长度的二值编码,M个第N代生成器子模型的网络结构的适应值的平均值与第(N-1)代子群中M个第(N-1)代生成器子模型的网络结构的适应值的平均值的差值小于设定值;处理模块1502,还用于根据压缩前的生成器模型中的网络参数和适应值最优的第N代生成器子模型的网络结构,确定压缩后的生成器模型。
可选的,处理模块1502,用于根据每个第一代生成器子模型的网络结构的适应值,结合遗传算法,确定第N代子群中适应值最优的第N代生成器子模型的网络结构,包括:处理模块1502,用于重复执行下述步骤S1,直至得到第N代子群:步骤S1、从第k代子群中选出适应值最优的第k代生成器子模型的网络结构作为第(k+1)代子群中的一个第(k+1)代生成器子模型的网络结构,k为小于(N-1)的正整数;根据遗传算法,按照第k代子群中M个生成器子模型的网络结构的适应值大小进行概率选择,并按照预设的概率进行选择、交叉和突变操作,得到第(k+1)代子群中的其他(M-1)个第(k+1)代生成器子模型的网络结构;处理模块1502,用于确定第N代子群中适应值最优的第N代生成器子模型的网络结构。
可选的,第p代生成器子模型的网络结构的适应值是根据第p代生成器子模型的网络参数量的归一化值、生成器感知损失和判别器感知损失确定的,生成器感知损失用于表征第p代生成器子模型的输出结果与第p-1代生成器子模型的输出结果的差值;判别器感知损失用于表征第p代生成器子模型的输出结果与第p-1代生成器子模型的输出结果分别再经过判别器后的输出结果的差值,其中,p为1至N的正整数,第0代生成器子模型为压缩前的生成器模型。
可选的,第p代生成器子模型的网络参数量的归一化值、生成器感知损失和判别器感知损失满足如下第一公式:其中,f(q)表示第p代生成器子模型的网络结构的适应值;p(q)表示第p代生成器子模型的网络参数量的归一化值,λ和γ为设定值;/>表示生成器感知损失;/>表示判别器感知损失,q表示第p代生成器子模型的网络结构的所有卷积层的二值编码。
可选的,p(q)满足如下第二公式:其中,ql-1表示第p代生成器子模型的网络结构中第(l-1)层卷积的二值编码;ql表示第p代生成器子模型的网络结构中第l层卷积的二值编码;Hl表示第p代生成器子模型的网络结构的第l层卷积的高度;Wl表第p代生成器子模型的网络结构的第l层卷积的宽度;Cl表示第p代生成器子模型的网络结构的第l层卷积的通道数;Nl表示第p代生成器子模型的网络结构的第l层卷积的个数;|| ||1表示L1范数;∑表示求和。
可选的,处理模块1502,还用于根据如下第三公式确定生成器感知损失,第三公式包括:其中,xi表示第i张输入图片,m表示输入图片的张数,G(xi)表示第i张输入图片经过第p-1代生成器子模型的输出结果;/>表示第i张输入图片经过第p代生成器子模型的输出结果,∑表示求和;/>表示L2范数差。
可选的,处理模块1502,还用于根据如下第四公式确定判别器感知损失,第四公式包括:其中,xi表示第i张输入图片,m表示输入图片的张数,D(G(xi))表示第i张输入图片经过第p-1代生成器子模型的输出结果再经过判别器后的输出结果;/>表示第i张输入图片经过第p代生成器子模型的输出结果再经过判别器后的输出结果,∑表示求和;/>表示L2范数差。
可选的,处理模块1502,用于对压缩前的生成器模型的网络结构进行二值编码,得到第一代子群,包括:处理模块1502,用于若压缩前的生成器模型的网络结构中的第一通道对应的二值编码为0,去除第一通道相关的计算单元;或者,处理模块1502,用于若压缩前的生成器模型的网络结构中的第二通道对应的二值编码为1,保留第二通道相关的计算单元,其中,第一通道或第二通道对应压缩前的生成器模型的网络结构中的任一层卷积的一个卷积核。
或者,另一种可能的实现方式中:
获取模块1501,用于获取压缩前的第一生成器模型和第二生成器模型,第一生成器模型和第二生成器模型为对称的生成器模型;处理模块1502,用于对压缩前的第一生成器模型的网络结构进行二值编码,得到第一生成器模型对应的第一代子群;以及,对压缩前的第二生成器模型的网络结构进行二值编码,得到第二生成器模型对应的第一代子群;第一生成器模型对应的第一代子群包括M1个第一代生成器子模型的网络结构,第二生成器模型对应的第一代子群包括M2个第一代生成器子模型的网络结构,每个第一代生成器子模型的网络结构对应一组固定长度的二值编码,M1和M2均为大于1的正整数;获取模块1501,还用于获取每个第一代生成器子模型的网络结构的适应值;处理模块1502,还用于根据每个第一代生成器子模型的网络结构的适应值,结合遗传算法,确定第一生成器模型对应的第N代子群中适应值最优的第N代生成器子模型的网络结构以及第二生成器模型对应的第N代子群中适应值最优的第N代生成器子模型的网络结构,N为大于1的正整数,其中,第一生成器模型对应的第N代子群包括M1个第N代生成器子模型的网络结构,第二生成器模型对应的第N代子群包括M2个第N代生成器子模型的网络结构,每个第N代生成器子模型的网络结构对应一组固定长度的二值编码,第一生成器模型对应的M1个第N代生成器子模型的网络结构的适应值的平均值与第一生成器模型对应的M1个第(N-1)代生成器子模型的网络结构的适应值的平均值的差值小于第一设定值,第二生成器模型对应的M2个第N代生成器子模型的网络结构的适应值的平均值与第二生成器模型对应的M2个第(N-1)代生成器子模型的网络结构的适应值的平均值的差值小于第二设定值;处理模块1502,还用于根据压缩前的第一生成器模型中的网络参数和第一生成器模型对应的第N代子群中适应值最优的第N代生成器子模型的网络结构,确定压缩后的第一生成器模型;以及,根据压缩前的第二生成器模型中的网络参数和第二生成器模型对应的第N代子群中适应值最优的第N代生成器子模型的网络结构,确定压缩后的第二生成器模型。
可选的,处理模块1502,用于根据每个第一代生成器子模型的网络结构的适应值,结合遗传算法,确定第一生成器模型对应的第N代子群中适应值最优的第N代生成器子模型的网络结构以及第二生成器模型对应的第N代子群中适应值最优的第N代生成器子模型的网络结构,包括:处理模块1502,用于重复执行下述步骤S1和步骤S2,直至得到第一生成器模型对应的第N代子群以及第二生成器模型对应的第N代子群:步骤S1、将第一生成器模型对应的第k代子群中适应值最优的第k代生成器子模型的网络结构作为第二生成器模型对应的第(k+1)代子群中的一个第(k+1)代生成器子模型的网络结构;根据遗传算法,按照第二生成器模型对应的第k代子群中M2个生成器子模型的网络结构的适应值大小进行概率选择,并按照预设的概率进行选择、交叉和突变操作,得到第二生成器模型对应的第k+1代子群中的其他(M2-1)个第k+1代生成器子模型的网络结构,k为小于(N-1)的正整数;步骤S2、将第二生成器模型对应的第k+1代子群中适应值最优的第k+1代生成器子模型的网络结构作为第一生成器模型对应的第(k+1)代子群中的一个第k+1代生成器子模型的网络结构;根据遗传算法,按照第一生成器模型对应的第k代子群中M1个生成器子模型的网络结构的适应值大小进行概率选择,并按照预设的概率进行选择、交叉和突变操作,得到第一生成器模型对应的第k+1代子群中的其他(M1-1)个第k+1代生成器子模型的网络结构;处理模块1502,用于确定第一生成器模型对应的第N代子群中适应值最优的第N代生成器子模型的网络结构以及第二生成器模型对应的第N代子群中适应值最优的第N代生成器子模型的网络结构。
其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
在本实施例中,该模型压缩装置150以采用集成的方式划分各个功能模块的形式来呈现。这里的“模块”可以指特定应用集成电路(application-specific integratedcircuit,ASIC),电路,执行一个或多个软件或固件程序的处理器和存储器,集成逻辑电路,和/或其他可以提供上述功能的器件。在一个简单的实施例中,本领域的技术人员可以想到该模型压缩装置150可以采用图16所示的形式。
如图16所示,该模型压缩装置160包括一个或多个处理器1601。可选的,该模型压缩装置160通信线路1602、至少一个通信接口(图16中仅是示例性的以包括通信接口1604,以及一个处理器1601为例进行说明)或者存储器1603。
处理器1601可以是一个中央处理器(central processing unit,CPU),微处理器,特定ASIC,或一个或多个用于控制本申请方案程序执行的集成电路。
通信线路1602可包括一通路,用于连接不同组件之间。
通信接口1604,可以用于与其他设备或通信网络通信,如以太网,无线接入网(radio access network,RAN),无线局域网(wireless local area networks,WLAN)等。例如,所述收发模块可以是收发器、收发机一类的装置。可选的,所述通信接口1604也可以是位于处理器1601内的收发电路,用以实现处理器的信号输入和信号输出。
存储器1603可以是具有存储功能的装置。例如可以是只读存储器(read-onlymemory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、只读光盘(compact disc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过通信线路1602与处理器相连接。存储器也可以和处理器集成在一起。
其中,存储器1603用于存储执行本申请方案的计算机执行指令,并由处理器1601来控制执行。处理器1601用于执行存储器1603中存储的计算机执行指令,从而实现本申请实施例中提供的模型压缩方法。
或者,可选的,本申请实施例中,也可以是处理器1601执行本申请上述实施例提供的模型压缩方法中的处理相关的功能,通信接口1604负责与其他设备或通信网络通信,本申请实施例对此不作具体限定。
可选的,本申请实施例中的计算机执行指令也可以称之为应用程序代码,本申请实施例对此不作具体限定。
在具体实现中,作为一种实施例,处理器1601可以包括一个或多个CPU,例如图16中的CPU0和CPU1。
在具体实现中,作为一种实施例,模型压缩装置160可以包括多个处理器,例如图16中的处理器1601和处理器1608。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
在具体实现中,作为一种实施例,模型压缩装置160还可以包括输出设备1605和输入设备1606。输出设备1605和处理器1601通信,可以以多种方式来显示信息。例如,输出设备1605可以是液晶显示器(liquid crystal display,LCD),发光二级管(light emittingdiode,LED)显示设备,阴极射线管(cathode ray tube,CRT)显示设备,或投影仪(projector)等。输入设备1606和处理器1601通信,可以以多种方式接收用户的输入。例如,输入设备1606可以是鼠标、键盘、触摸屏设备或传感设备等。
上述的模型压缩装置160可以是一个通用设备或者是一个专用设备。例如模型压缩装置160可以是服务器、台式机、便携式电脑、网络服务器、掌上电脑(personal digitalassistant,PDA)、移动手机、平板电脑、无线终端设备、嵌入式设备、或具有图16中类似结构的设备。本申请实施例不限定模型压缩装置160的类型。
具体的,图15中的获取模块1501和处理模块1502的功能/实现过程可以通过图16所示的模型压缩装置160中的处理器1601调用存储器1603中存储的计算机执行指令来实现。由于本实施例提供的模型压缩装置160可执行上述的模型压缩方法,因此其所能获得的技术效果可参考上述方法实施例,在此不再赘述。
需要说明的是,以上模块或单元的一个或多个可以软件、硬件或二者结合来实现。当以上任一模块或单元以软件实现的时候,所述软件以计算机程序指令的方式存在,并被存储在存储器中,处理器可以用于执行所述程序指令并实现以上方法流程。该处理器可以内置于SoC(片上系统)或ASIC,也可是一个独立的半导体芯片。该处理器内处理用于执行软件指令以进行运算或处理的核外,还可进一步包括必要的硬件加速器,如现场可编程门阵列(field programmable gate array,FPGA)、PLD(可编程逻辑器件)、或者实现专用逻辑运算的逻辑电路。
当以上模块或单元以硬件实现的时候,该硬件可以是CPU、微处理器、数字信号处理(digital signal processing,DSP)芯片、微控制单元(microcontroller unit,MCU)、人工智能处理器、ASIC、SoC、FPGA、PLD、专用数字电路、硬件加速器或非集成的分立器件中的任一个或任一组合,其可以运行必要的软件或不依赖于软件以执行以上方法流程。
可选的,本申请实施例还提供了一种模型压缩装置(例如,该模型压缩装置可以是芯片或芯片系统),该模型压缩装置包括处理器,用于实现上述任一方法实施例中的方法。在一种可能的设计中,该模型压缩装置还包括存储器。该存储器,用于保存必要的程序指令和数据,处理器可以调用存储器中存储的程序代码以指令该模型压缩装置执行上述任一方法实施例中的方法。当然,存储器也可以不在该模型压缩装置中。该模型压缩装置是芯片系统时,可以由芯片构成,也可以包含芯片和其他分立器件,本申请实施例对此不作具体限定。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
尽管在此结合各实施例对本申请进行了描述,然而,在实施所要求保护的本申请过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
尽管结合具体特征及其实施例对本申请进行了描述,显而易见的,在不脱离本申请的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本申请的示例性说明,且视为已覆盖本申请范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (20)
1.一种模型压缩方法,其特征在于,所述方法包括:
获取压缩前的生成器模型;
对所述压缩前的生成器模型的网络结构进行二值编码,得到第一代子群,所述第一代子群包括M个第一代生成器子模型的网络结构,其中,每个第一代生成器子模型的网络结构对应一组固定长度的二值编码,M为大于1的正整数;
获取所述每个第一代生成器子模型的网络结构的适应值;
根据所述每个第一代生成器子模型的网络结构的适应值,结合遗传算法,确定第N代子群中适应值最优的第N代生成器子模型的网络结构,N为大于1的正整数,其中,所述第N代子群包括M个第N代生成器子模型的网络结构,每个第N代生成器子模型的网络结构对应一组所述固定长度的二值编码,所述M个第N代生成器子模型的网络结构的适应值的平均值与第(N-1)代子群中M个第(N-1)代生成器子模型的网络结构的适应值的平均值的差值小于设定值;
根据所述压缩前的生成器模型中的网络参数和所述适应值最优的第N代生成器子模型的网络结构,确定压缩后的生成器模型;
采用压缩后的生成器模型对输入的图像进行卷积和反卷积运算,实时得到风格转换后的图像。
2.根据权利要求1所述的方法,其特征在于,所述根据所述每个第一代生成器子模型的网络结构的适应值,结合遗传算法,确定第N代子群中适应值最优的第N代生成器子模型的网络结构,包括:
重复执行下述步骤S1,直至得到第N代子群:
步骤S1、从第k代子群中选出适应值最优的第k代生成器子模型的网络结构作为第(k+1)代子群中的一个第(k+1)代生成器子模型的网络结构,k为小于(N-1)的正整数;根据所述遗传算法,按照第k代子群中M个生成器子模型的网络结构的适应值大小进行概率选择,并按照预设的概率进行选择、交叉和突变操作,得到第(k+1)代子群中的其他(M-1)个第(k+1)代生成器子模型的网络结构;
确定第N代子群中适应值最优的第N代生成器子模型的网络结构。
3.根据权利要求1或2所述的方法,其特征在于,第p代生成器子模型的网络结构的适应值是根据所述第p代生成器子模型的网络参数量的归一化值、生成器感知损失和判别器感知损失确定的,所述生成器感知损失用于表征第p代生成器子模型的输出结果与第p-1代生成器子模型的输出结果的差值;所述判别器感知损失用于表征所述第p代生成器子模型的输出结果与所述第p-1代生成器子模型的输出结果分别再经过判别器后的输出结果的差值,其中,p为1至N的正整数,第0代生成器子模型为所述压缩前的生成器模型。
4.根据权利要求3所述的方法,其特征在于,所述第p代生成器子模型的网络参数量的归一化值、所述生成器感知损失和所述判别器感知损失满足如下第一公式:
其中,f(q)表示所述第p代生成器子模型的网络结构的适应值;p(q)表示所述第p代生成器子模型的网络参数量的归一化值,λ和γ为设定值;表示所述生成器感知损失;表示所述判别器感知损失,q表示所述第p代生成器子模型的网络结构的所有卷积层的二值编码。
5.根据权利要求4所述的方法,其特征在于,p(q)满足如下第二公式:
其中,ql-1表示所述第p代生成器子模型的网络结构中第(l-1)层卷积的二值编码;ql表示所述第p代生成器子模型的网络结构中第l层卷积的二值编码;Hl表示所述第p代生成器子模型的网络结构的第l层卷积的高度;Wl表所述第p代生成器子模型的网络结构的第l层卷积的宽度;Cl表示所述第p代生成器子模型的网络结构的第l层卷积的通道数;Nl表示所述第p代生成器子模型的网络结构的第l层卷积的个数;|| ||1表示L1范数;∑表示求和。
6.根据权利要求3所述的方法,其特征在于,所述方法还包括:
根据如下第三公式确定所述生成器感知损失,所述第三公式包括:
其中,xi表示第i张输入图片,m表示输入图片的张数,G(xi)表示第i张输入图片经过所述第p-1代生成器子模型的输出结果;表示所述第i张输入图片经过所述第p代生成器子模型的输出结果,∑表示求和;/>表示L2范数差。
7.根据权利要求3所述的方法,其特征在于,所述方法还包括:
根据如下第四公式确定所述判别器感知损失,所述第四公式包括:
其中,xi表示第i张输入图片,m表示输入图片的张数,D(G(xi))表示第i张输入图片经过所述第p-1代生成器子模型的输出结果再经过判别器后的输出结果;表示所述第i张输入图片经过所述第p代生成器子模型的输出结果再经过所述判别器后的输出结果,∑表示求和;/>表示L2范数差。
8.根据权利要求1或2所述的方法,其特征在于,所述对所述压缩前的生成器模型的网络结构进行二值编码,得到第一代子群,包括:
若所述压缩前的生成器模型的网络结构中的第一通道对应的二值编码为0,去除所述第一通道相关的计算单元;或者,
若所述压缩前的生成器模型的网络结构中的第二通道对应的二值编码为1,保留所述第二通道相关的计算单元,其中,所述第一通道或所述第二通道对应所述压缩前的生成器模型的网络结构中的任一层卷积的一个卷积核。
9.一种模型压缩方法,其特征在于,所述方法包括:
获取压缩前的第一生成器模型和第二生成器模型,所述第一生成器模型和所述第二生成器模型为对称的生成器模型;
对所述压缩前的第一生成器模型的网络结构进行二值编码,得到所述第一生成器模型对应的第一代子群;以及,对所述压缩前的第二生成器模型的网络结构进行二值编码,得到所述第二生成器模型对应的第一代子群;所述第一生成器模型对应的第一代子群包括M1个第一代生成器子模型的网络结构,所述第二生成器模型对应的第一代子群包括M2个第一代生成器子模型的网络结构,每个第一代生成器子模型的网络结构对应一组固定长度的二值编码,M1和M2均为大于1的正整数;
获取所述每个第一代生成器子模型的网络结构的适应值;
根据所述每个第一代生成器子模型的网络结构的适应值,结合遗传算法,确定第一生成器模型对应的第N代子群中适应值最优的第N代生成器子模型的网络结构以及第二生成器模型对应的第N代子群中适应值最优的第N代生成器子模型的网络结构,N为大于1的正整数,其中,所述第一生成器模型对应的第N代子群包括M1个第N代生成器子模型的网络结构,所述第二生成器模型对应的第N代子群包括M2个第N代生成器子模型的网络结构,每个第N代生成器子模型的网络结构对应一组所述固定长度的二值编码,所述第一生成器模型对应的M1个第N代生成器子模型的网络结构的适应值的平均值与所述第一生成器模型对应的M1个第(N-1)代生成器子模型的网络结构的适应值的平均值的差值小于第一设定值,所述第二生成器模型对应的M2个第N代生成器子模型的网络结构的适应值的平均值与所述第二生成器模型对应的M2个第(N-1)代生成器子模型的网络结构的适应值的平均值的差值小于第二设定值;
根据所述压缩前的第一生成器模型中的网络参数和所述第一生成器模型对应的第N代子群中适应值最优的第N代生成器子模型的网络结构,确定压缩后的第一生成器模型;以及,根据所述压缩前的第二生成器模型中的网络参数和所述第二生成器模型对应的第N代子群中适应值最优的第N代生成器子模型的网络结构,确定压缩后的第二生成器模型;采用压缩后的第一生成器模型对输入的图像进行卷积和反卷积运算,实时得到风格转换后的图像,或者,采用压缩后的第二生成器模型对输入的图像进行卷积和反卷积运算,实时得到风格转换后的图像。
10.根据权利要求9所述的方法,其特征在于,所述根据所述每个第一代生成器子模型的网络结构的适应值,结合遗传算法,确定所述第一生成器模型对应的第N代子群中适应值最优的第N代生成器子模型的网络结构以及所述第二生成器模型对应的第N代子群中适应值最优的第N代生成器子模型的网络结构,包括:
重复执行下述步骤S1和步骤S2,直至得到第一生成器模型对应的第N代子群以及第二生成器模型对应的第N代子群:
步骤S1、将所述第一生成器模型对应的第k代子群中适应值最优的第k代生成器子模型的网络结构作为所述第二生成器模型对应的第(k+1)代子群中的一个第(k+1)代生成器子模型的网络结构;根据所述遗传算法,按照所述第二生成器模型对应的第k代子群中M2个生成器子模型的网络结构的适应值大小进行概率选择,并按照预设的概率进行选择、交叉和突变操作,得到所述第二生成器模型对应的第k+1代子群中的其他(M2-1)个第k+1代生成器子模型的网络结构,k为小于(N-1)的正整数;
步骤S2、将所述第二生成器模型对应的第k+1代子群中适应值最优的第k+1代生成器子模型的网络结构作为所述第一生成器模型对应的第(k+1)代子群中的一个第k+1代生成器子模型的网络结构;根据所述遗传算法,按照所述第一生成器模型对应的第k代子群中M1个生成器子模型的网络结构的适应值大小进行概率选择,并按照预设的概率进行选择、交叉和突变操作,得到所述第一生成器模型对应的第k+1代子群中的其他(M1-1)个第k+1代生成器子模型的网络结构;
确定所述第一生成器模型对应的第N代子群中适应值最优的第N代生成器子模型的网络结构以及所述第二生成器模型对应的第N代子群中适应值最优的第N代生成器子模型的网络结构。
11.一种模型压缩装置,其特征在于,所述装置包括:获取模块和处理模块;
所述获取模块,用于获取压缩前的生成器模型;
所述处理模块,用于对所述压缩前的生成器模型的网络结构进行二值编码,得到第一代子群,所述第一代子群包括M个第一代生成器子模型的网络结构,其中,每个第一代生成器子模型的网络结构对应一组固定长度的二值编码,M为大于1的正整数;
所述获取模块,还用于获取所述每个第一代生成器子模型的网络结构的适应值;
所述处理模块,还用于根据所述每个第一代生成器子模型的网络结构的适应值,结合遗传算法,确定第N代子群中适应值最优的第N代生成器子模型的网络结构,N为大于1的正整数,其中,所述第N代子群包括M个第N代生成器子模型的网络结构,每个第N代生成器子模型的网络结构对应一组所述固定长度的二值编码,所述M个第N代生成器子模型的网络结构的适应值的平均值与第(N-1)代子群中M个第(N-1)代生成器子模型的网络结构的适应值的平均值的差值小于设定值;
所述处理模块,还用于根据所述压缩前的生成器模型中的网络参数和所述适应值最优的第N代生成器子模型的网络结构,确定压缩后的生成器模型;采用压缩后的生成器模型对输入的图像进行卷积和反卷积运算,实时得到风格转换后的图像。
12.根据权利要求11所述的装置,其特征在于,所述处理模块,用于根据所述每个第一代生成器子模型的网络结构的适应值,结合遗传算法,确定第N代子群中适应值最优的第N代生成器子模型的网络结构,包括:
所述处理模块,用于重复执行下述步骤S1,直至得到第N代子群:
步骤S1、从第k代子群中选出适应值最优的第k代生成器子模型的网络结构作为第(k+1)代子群中的一个第(k+1)代生成器子模型的网络结构,k为小于(N-1)的正整数;根据所述遗传算法,按照第k代子群中M个生成器子模型的网络结构的适应值大小进行概率选择,并按照预设的概率进行选择、交叉和突变操作,得到第(k+1)代子群中的其他(M-1)个第(k+1)代生成器子模型的网络结构;
所述处理模块,用于确定第N代子群中适应值最优的第N代生成器子模型的网络结构。
13.根据权利要求11或12所述的装置,其特征在于,第p代生成器子模型的网络结构的适应值是根据所述第p代生成器子模型的网络参数量的归一化值、生成器感知损失和判别器感知损失确定的,所述生成器感知损失用于表征第p代生成器子模型的输出结果与第p-1代生成器子模型的输出结果的差值;所述判别器感知损失用于表征所述第p代生成器子模型的输出结果与所述第p-1代生成器子模型的输出结果分别再经过判别器后的输出结果的差值,其中,p为1至N的正整数,第0代生成器子模型为所述压缩前的生成器模型。
14.根据权利要求13所述的装置,其特征在于,所述第p代生成器子模型的网络参数量的归一化值、所述生成器感知损失和所述判别器感知损失满足如下第一公式:
其中,f(q)表示所述第p代生成器子模型的网络结构的适应值;p(q)表示所述第p代生成器子模型的网络参数量的归一化值,λ和γ为设定值;表示所述生成器感知损失;表示所述判别器感知损失,q表示所述第p代生成器子模型的网络结构的所有卷积层的二值编码。
15.根据权利要求14所述的装置,其特征在于,p(q)满足如下第二公式:
其中,ql-1表示所述第p代生成器子模型的网络结构中第(l-1)层卷积的二值编码;ql表示所述第p代生成器子模型的网络结构中第l层卷积的二值编码;Hl表示所述第p代生成器子模型的网络结构的第l层卷积的高度;Wl表所述第p代生成器子模型的网络结构的第l层卷积的宽度;Cl表示所述第p代生成器子模型的网络结构的第l层卷积的通道数;Nl表示所述第p代生成器子模型的网络结构的第l层卷积的个数;|| ||1表示L1范数;∑表示求和。
16.根据权利要求13所述的装置,其特征在于,所述处理模块,还用于根据如下第三公式确定所述生成器感知损失,所述第三公式包括:
其中,xi表示第i张输入图片,m表示输入图片的张数,G(xi)表示第i张输入图片经过所述第p-1代生成器子模型的输出结果;表示所述第i张输入图片经过所述第p代生成器子模型的输出结果,∑表示求和;/>表示L2范数差。
17.根据权利要求13所述的装置,其特征在于,所述处理模块,还用于根据如下第四公式确定所述判别器感知损失,所述第四公式包括:
其中,xi表示第i张输入图片,m表示输入图片的张数,D(G(xi))表示第i张输入图片经过所述第p-1代生成器子模型的输出结果再经过判别器后的输出结果;表示所述第i张输入图片经过所述第p代生成器子模型的输出结果再经过所述判别器后的输出结果,∑表示求和;/>表示L2范数差。
18.根据权利要求11或12所述的装置,其特征在于,所述处理模块,用于对所述压缩前的生成器模型的网络结构进行二值编码,得到第一代子群,包括:
所述处理模块,用于若所述压缩前的生成器模型的网络结构中的第一通道对应的二值编码为0,去除所述第一通道相关的计算单元;或者,
所述处理模块,用于若所述压缩前的生成器模型的网络结构中的第二通道对应的二值编码为1,保留所述第二通道相关的计算单元,其中,所述第一通道或所述第二通道对应所述压缩前的生成器模型的网络结构中的任一层卷积的一个卷积核。
19.一种模型压缩装置,其特征在于,所述装置包括:获取模块和处理模块;
所述获取模块,用于获取压缩前的第一生成器模型和第二生成器模型,所述第一生成器模型和所述第二生成器模型为对称的生成器模型;
所述处理模块,用于对所述压缩前的第一生成器模型的网络结构进行二值编码,得到所述第一生成器模型对应的第一代子群;以及,对所述压缩前的第二生成器模型的网络结构进行二值编码,得到所述第二生成器模型对应的第一代子群;所述第一生成器模型对应的第一代子群包括M1个第一代生成器子模型的网络结构,所述第二生成器模型对应的第一代子群包括M2个第一代生成器子模型的网络结构,每个第一代生成器子模型的网络结构对应一组固定长度的二值编码,M1和M2均为大于1的正整数;
所述获取模块,还用于获取所述每个第一代生成器子模型的网络结构的适应值;
所述处理模块,还用于根据所述每个第一代生成器子模型的网络结构的适应值,结合遗传算法,确定第一生成器模型对应的第N代子群中适应值最优的第N代生成器子模型的网络结构以及第二生成器模型对应的第N代子群中适应值最优的第N代生成器子模型的网络结构,N为大于1的正整数,其中,所述第一生成器模型对应的第N代子群包括M1个第N代生成器子模型的网络结构,所述第二生成器模型对应的第N代子群包括M2个第N代生成器子模型的网络结构,每个第N代生成器子模型的网络结构对应一组所述固定长度的二值编码,所述第一生成器模型对应的M1个第N代生成器子模型的网络结构的适应值的平均值与所述第一生成器模型对应的M1个第(N-1)代生成器子模型的网络结构的适应值的平均值的差值小于第一设定值,所述第二生成器模型对应的M2个第N代生成器子模型的网络结构的适应值的平均值与所述第二生成器模型对应的M2个第(N-1)代生成器子模型的网络结构的适应值的平均值的差值小于第二设定值;
所述处理模块,还用于根据所述压缩前的第一生成器模型中的网络参数和所述第一生成器模型对应的第N代子群中适应值最优的第N代生成器子模型的网络结构,确定压缩后的第一生成器模型;以及,根据所述压缩前的第二生成器模型中的网络参数和所述第二生成器模型对应的第N代子群中适应值最优的第N代生成器子模型的网络结构,确定压缩后的第二生成器模型;采用压缩后的第一生成器模型对输入的图像进行卷积和反卷积运算,实时得到风格转换后的图像,或者,采用压缩后的第二生成器模型对输入的图像进行卷积和反卷积运算,实时得到风格转换后的图像。
20.根据权利要求19所述的装置,其特征在于,所述处理模块,用于根据所述每个第一代生成器子模型的网络结构的适应值,结合遗传算法,确定所述第一生成器模型对应的第N代子群中适应值最优的第N代生成器子模型的网络结构以及所述第二生成器模型对应的第N代子群中适应值最优的第N代生成器子模型的网络结构,包括:
所述处理模块,用于重复执行下述步骤S1和步骤S2,直至得到第一生成器模型对应的第N代子群以及第二生成器模型对应的第N代子群:
步骤S1、将所述第一生成器模型对应的第k代子群中适应值最优的第k代生成器子模型的网络结构作为所述第二生成器模型对应的第(k+1)代子群中的一个第(k+1)代生成器子模型的网络结构;根据所述遗传算法,按照所述第二生成器模型对应的第k代子群中M2个生成器子模型的网络结构的适应值大小进行概率选择,并按照预设的概率进行选择、交叉和突变操作,得到所述第二生成器模型对应的第k+1代子群中的其他(M2-1)个第k+1代生成器子模型的网络结构,k为小于(N-1)的正整数;
步骤S2、将所述第二生成器模型对应的第k+1代子群中适应值最优的第k+1代生成器子模型的网络结构作为所述第一生成器模型对应的第(k+1)代子群中的一个第k+1代生成器子模型的网络结构;根据所述遗传算法,按照所述第一生成器模型对应的第k代子群中M1个生成器子模型的网络结构的适应值大小进行概率选择,并按照预设的概率进行选择、交叉和突变操作,得到所述第一生成器模型对应的第k+1代子群中的其他(M1-1)个第k+1代生成器子模型的网络结构;
所述处理模块,用于确定所述第一生成器模型对应的第N代子群中适应值最优的第N代生成器子模型的网络结构以及所述第二生成器模型对应的第N代子群中适应值最优的第N代生成器子模型的网络结构。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910430876.2A CN111985597B (zh) | 2019-05-22 | 2019-05-22 | 模型压缩方法及装置 |
PCT/CN2020/091824 WO2020233709A1 (zh) | 2019-05-22 | 2020-05-22 | 模型压缩方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910430876.2A CN111985597B (zh) | 2019-05-22 | 2019-05-22 | 模型压缩方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111985597A CN111985597A (zh) | 2020-11-24 |
CN111985597B true CN111985597B (zh) | 2023-10-24 |
Family
ID=73436031
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910430876.2A Active CN111985597B (zh) | 2019-05-22 | 2019-05-22 | 模型压缩方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111985597B (zh) |
WO (1) | WO2020233709A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110727633A (zh) * | 2019-09-17 | 2020-01-24 | 广东高云半导体科技股份有限公司 | 基于SoC FPGA的边缘人工智能计算系统构架 |
CN112580639B (zh) * | 2021-03-01 | 2021-08-13 | 四川大学 | 一种基于进化神经网络模型压缩的早期胃癌图像识别方法 |
CN114239792B (zh) * | 2021-11-01 | 2023-10-24 | 荣耀终端有限公司 | 利用量化模型进行图像处理的系统、装置及存储介质 |
CN116994309B (zh) * | 2023-05-06 | 2024-04-09 | 浙江大学 | 一种公平性感知的人脸识别模型剪枝方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6424737B1 (en) * | 2000-01-24 | 2002-07-23 | Sony Corporation | Method and apparatus of compressing images using localized radon transforms |
CN108334497A (zh) * | 2018-02-06 | 2018-07-27 | 北京航空航天大学 | 自动生成文本的方法和装置 |
CN108615073A (zh) * | 2018-04-28 | 2018-10-02 | 北京京东金融科技控股有限公司 | 图像处理方法及装置、计算机可读存储介质、电子设备 |
CN109783910A (zh) * | 2018-12-29 | 2019-05-21 | 西安交通大学 | 一种利用生成对抗网络加速的结构优化设计方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7225376B2 (en) * | 2002-07-30 | 2007-05-29 | International Business Machines Corporation | Method and system for coding test pattern for scan design |
US10984308B2 (en) * | 2016-08-12 | 2021-04-20 | Xilinx Technology Beijing Limited | Compression method for deep neural networks with load balance |
US20190147320A1 (en) * | 2017-11-15 | 2019-05-16 | Uber Technologies, Inc. | "Matching Adversarial Networks" |
CN108171266A (zh) * | 2017-12-25 | 2018-06-15 | 中国矿业大学 | 一种多目标深度卷积生成式对抗网络模型的学习方法 |
CN108171762B (zh) * | 2017-12-27 | 2021-10-12 | 河海大学常州校区 | 一种深度学习的压缩感知同类图像快速重构系统与方法 |
AU2018100325A4 (en) * | 2018-03-15 | 2018-04-26 | Nian, Xilai MR | A New Method For Fast Images And Videos Coloring By Using Conditional Generative Adversarial Networks |
CN108665432A (zh) * | 2018-05-18 | 2018-10-16 | 百年金海科技有限公司 | 一种基于生成对抗网络的单幅图像去雾方法 |
CN109472757B (zh) * | 2018-11-15 | 2020-06-09 | 央视国际网络无锡有限公司 | 一种基于生成对抗神经网络的图像去台标方法 |
-
2019
- 2019-05-22 CN CN201910430876.2A patent/CN111985597B/zh active Active
-
2020
- 2020-05-22 WO PCT/CN2020/091824 patent/WO2020233709A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6424737B1 (en) * | 2000-01-24 | 2002-07-23 | Sony Corporation | Method and apparatus of compressing images using localized radon transforms |
CN108334497A (zh) * | 2018-02-06 | 2018-07-27 | 北京航空航天大学 | 自动生成文本的方法和装置 |
CN108615073A (zh) * | 2018-04-28 | 2018-10-02 | 北京京东金融科技控股有限公司 | 图像处理方法及装置、计算机可读存储介质、电子设备 |
CN109783910A (zh) * | 2018-12-29 | 2019-05-21 | 西安交通大学 | 一种利用生成对抗网络加速的结构优化设计方法 |
Non-Patent Citations (1)
Title |
---|
结构化压缩感知研究进展;刘芳 等;《自动化学报》;20131231;第39卷(第12期);第1980-1995页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111985597A (zh) | 2020-11-24 |
WO2020233709A1 (zh) | 2020-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111985597B (zh) | 模型压缩方法及装置 | |
US20220012593A1 (en) | Neural network accelerator and neural network acceleration method based on structured pruning and low-bit quantization | |
US10776688B2 (en) | Multi-frame video interpolation using optical flow | |
CN110473141B (zh) | 图像处理方法、装置、存储介质及电子设备 | |
CN107066239A (zh) | 一种实现卷积神经网络前向计算的硬件结构 | |
US20210314629A1 (en) | Using residual video data resulting from a compression of original video data to improve a decompression of the original video data | |
US20230237313A1 (en) | Layout Parasitics and Device Parameter Prediction using Graph Neural Networks | |
US20220067512A1 (en) | Fine-grained per-vector scaling for neural network quantization | |
CN113705775A (zh) | 一种神经网络的剪枝方法、装置、设备及存储介质 | |
CN112288087A (zh) | 一种神经网络剪枝方法、装置、电子设备及存储介质 | |
JP7085600B2 (ja) | 画像間の類似度を利用した類似領域強調方法およびシステム | |
US20220067530A1 (en) | Fine-grained per-vector scaling for neural network quantization | |
CN112288619A (zh) | 用于在渲染图形时预加载纹理的技术 | |
CN113792621B (zh) | 一种基于fpga的目标检测加速器设计方法 | |
CA3137297A1 (en) | Adaptive convolutions in neural networks | |
US20230062503A1 (en) | Pruning and accelerating neural networks with hierarchical fine-grained structured sparsity | |
CN108520532B (zh) | 识别视频中物体运动方向的方法及装置 | |
US11282258B1 (en) | Adaptive sampling at a target sampling rate | |
US20230298243A1 (en) | 3d digital avatar generation from a single or few portrait images | |
Maisano et al. | Reducing complexity of 3D indoor object detection | |
CN116228986A (zh) | 一种基于局部到全局补全策略的室内场景光照估计方法 | |
CN115909009A (zh) | 图像识别方法、装置、存储介质及电子设备 | |
CN113191367B (zh) | 基于密集尺度动态网络的语义分割方法 | |
US11925860B2 (en) | Projective hash maps | |
CN117953092A (zh) | 利用表示不同种类像素的映射创建图像 |
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 |