CN109241322A - 代码生成方法、代码生成装置和电子设备 - Google Patents
代码生成方法、代码生成装置和电子设备 Download PDFInfo
- Publication number
- CN109241322A CN109241322A CN201810988503.2A CN201810988503A CN109241322A CN 109241322 A CN109241322 A CN 109241322A CN 201810988503 A CN201810988503 A CN 201810988503A CN 109241322 A CN109241322 A CN 109241322A
- Authority
- CN
- China
- Prior art keywords
- neuron
- code
- neural network
- deep neural
- training
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/002—Image coding using neural 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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Multimedia (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
公开了一种代码生成方法、代码生成装置和电子设备。该方法包括:通过深度神经网络从输入数据集获得第一长度的第一代码,所述深度神经网络的每个神经元输出所述第一代码的一位代码;通过神经元融合层将所述深度神经网络的神经元划分为多个分组;以及,选择所述每个分组中的一个神经元的输出以生成第二长度的第二代码,所述第二长度小于所述第一长度。这样,可以得到更精确的代码生成模型,从而减小所生成的代码的冗余。
Description
技术领域
本申请涉及数据处理领域,且具体地,涉及一种代码生成方法、代码生成装置和电子设备。
背景技术
随着互联网技术的高速发展,比如图像的多媒体数据呈爆炸式增长,且人们对于多媒体数据的检索需求也日益增长。
由于采用哈希码可以降低图片特征的维度以及提高响应速度的优势,因此广泛地用于解决大规模图像检索的问题。
但是,利用传统的深度监督哈希算法生成一定长度的二值哈希码时,很容易产生冗余现象。这是因为哈希码中的不同位的重要性是不同的,有的位对于检索精度的影响很大,去除后会导致检索精度大幅降低;而有的位的去除对于检索精度几乎没有影响;甚至有些位的去除能够提高检索精度。
因此,期望提供能够减少代码冗余的改进的代码生成方法。
发明内容
为了解决上述技术问题,提出了本申请。本申请的实施例提供了一种代码生成方法、代码生成装置和电子设备,其通过神经元融合层融合深度神经网络的神经元以生成较短的代码,从而得到更精确的代码生成模型,减小所生成的代码的冗余。
根据本申请的一个方面,提供了一种代码生成方法,包括:通过深度神经网络从输入数据集获得第一长度的第一代码,所述深度神经网络的每个神经元输出所述第一代码的一位代码;通过神经元融合层将所述深度神经网络的神经元划分为多个分组;以及,选择所述每个分组中的一个神经元的输出以生成第二长度的第二代码,所述第二长度小于所述第一长度。
在上述代码生成方法中,所述神经元融合层通过基于验证数据集的训练得到,所述训练过程包括:计算所述深度神经网络的每个神经元的冗余度,所述冗余度表示所述神经元对应的精度改变程度;以及,通过训练所述神经元融合层以更新所述每个神经元之间的邻接关系以使得冗余度更小。
在上述代码生成方法中,所述深度神经网络通过基于训练数据集的训练得到,所述验证数据集是从所述训练数据集随机划分得到的。
在上述代码生成方法中,所述训练过程进一步包括:基于所述每个神经元之间的邻接关系对所述神经元融合层的参数进行二值化;以及,基于所述二值化的参数确定所述神经元划分为的多个分组。
在上述代码生成方法中,所述训练过程进一步包括:通过所述深度神经网络和所述神经元融合层从所述训练数据集获得验证代码;通过所述验证代码计算训练误差;以及,基于所述训练误差以反向传播训练所述深度神经网络和所述神经元融合层。
在上述代码生成方法中,在选择所述每个分组中的一个神经元的输出以生成第二长度的第二代码之后进一步包括:确定所述第二代码的位数是否小于或者等于预定阈值;响应于所述第二代码的位数大于所述预定阈值,通过另一神经元融合层将所述多个分组合并以减小所述分组的数目;以及,选择所述合并后的每个分组中的一个神经元的输出以生成第三长度的第三代码,所述第三长度小于所述第二长度。
在上述代码生成方法中,所述深度神经网络是深度哈希网络,且所述深度神经网络的每个神经元的输出是哈希码中的一位。
根据本申请的另一方面,提供了一种代码生成装置,包括:深度神经网络单元,用于通过深度神经网络从输入数据集获得第一长度的第一代码,所述深度神经网络的每个神经元输出所述第一代码的一位代码;神经元融合单元,用于通过神经元融合层将所述深度神经网络的神经元划分为多个分组;以及,代码生成单元,用于选择所述每个分组中的一个神经元的输出以生成第二长度的第二代码,所述第二长度小于所述第一长度。
在上述代码生成装置中,所述神经元融合层通过基于验证数据集的训练得到,所述训练过程包括:计算所述深度神经网络的每个神经元的冗余度,所述冗余度表示所述神经元对应的精度改变程度;以及,通过训练所述神经元融合层以更新所述每个神经元之间的邻接关系以使得冗余度更小。
在上述代码生成装置中,所述深度神经网络通过基于训练数据集的训练得到,所述验证数据集是从所述训练数据集随机划分得到的。
在上述代码生成装置中,所述训练过程进一步包括:基于所述每个神经元之间的邻接关系对所述神经元融合层的参数进行二值化;以及,基于所述二值化的参数确定所述神经元划分为的多个分组。
在上述代码生成装置中,所述训练过程进一步包括:通过所述深度神经网络和所述神经元融合层从输入数据集获得验证代码;通过所述验证代码计算训练误差;以及,基于所述训练误差以反向传播训练所述深度神经网络和所述神经元融合层。
在上述代码生成装置中,进一步包括:位数确定单元,用于确定所述第二代码的位数是否小于或者等于预定阈值;所述神经元融合单元进一步用于响应于所述第二代码的位数大于所述预定阈值,通过另一神经元融合层将所述多个分组合并以减小所述分组的数目;以及,所述代码生成单元进一步用于选择所述合并后的每个分组中的一个神经元的输出以生成第三长度的第三代码,所述第三长度小于所述第二长度。
在上述代码生成装置中,所述深度神经网络是深度哈希网络,且所述深度神经网络的每个神经元的输出是哈希码中的一位。
根据本申请的再一方面,提供了一种电子设备,包括:处理器;以及,存储器,在所述存储器中存储有计算机程序指令,所述计算机程序指令在被所述处理器运行时使得所述处理器执行如上所述的代码生成方法。
根据本申请的又一方面,提供了一种计算机可读介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行如上所述的代码生成方法。
与现有技术相比,本申请提供的代码生成方法、代码生成装置和电子设备可以通过深度神经网络从输入数据集获得第一长度的第一代码,所述深度神经网络的每个神经元输出所述第一代码的一位代码;通过神经元融合层将所述深度神经网络的神经元划分为多个分组;以及,选择所述每个分组中的一个神经元的输出以生成第二长度的第二代码,所述第二长度小于所述第一长度。这样,可以得到更精确的代码生成模型,从而减少所生成的代码的冗余。
附图说明
通过结合附图对本申请实施例进行更详细的描述,本申请的上述以及其他目的、特征和优势将变得更加明显。附图用来提供对本申请实施例的进一步理解,并且构成说明书的一部分,与本申请实施例一起用于解释本申请,并不构成对本申请的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
图1图示了根据本申请实施例的代码生成方法的系统示例的示意图。
图2图示了根据本申请实施例的代码生成方法的流程图。
图3图示了根据本申请实施例的代码生成方法中神经元融合层的训练过程的示意图。
图4图示了根据本申请实施例的代码生成方法中神经元融合层的固定过程的示意图。
图5图示了根据本申请实施例的代码生成装置的框图。
图6图示了根据本申请实施例的电子设备的框图。
具体实施方式
下面,将参考附图详细地描述根据本申请的示例实施例。显然,所描述的实施例仅仅是本申请的一部分实施例,而不是本申请的全部实施例,应理解,本申请不受这里描述的示例实施例的限制。
申请概述
如上所述,为了减小生成的代码,比如哈希码的冗余度,现有的技术方案主要分为两种。
一种是从网络结构入手,将原本的全连接层划分为多个单独的全连接层,代码的每一位由每个单独的全连接层生成,且不同位的全连接层之间没有连接,从而来减小代码的不同位之间的关联。
另一种是利用集成学习的方法,设计多个子模型分别负责产生一部分的代码,并将数据集划分为多个子集分别训练相应的子模型。
但是,应用上述方法,当需要改动代码的长度时,上述方法需要重新设计网络结构或者模型,甚至需要重新划分数据集,费时费力。并且,上述方法也没有显式地探索代码不同位的冗余现象而只是着力于减小代码不同位之间的关系,更没有显式地优化来减少代码的冗余。
针对上述技术问题,本申请的基本构思是通过神经元融合层来计算深度神经网络的神经元的冗余度,并基于冗余度对所述神经元进行分组,这样,可以基于神经元的分组而不是单个神经元生成代码的各个位,从而减少代码的冗余。
更具体地,本申请提供了一种代码生成方法、代码生成装置和电子设备,其首先通过深度神经网络从输入数据集获得第一长度的第一代码,所述深度神经网络的每个神经元输出所述第一代码的一位代码,然后通过神经元融合层将所述深度神经网络的神经元划分为多个分组,最后选择所述每个分组中的一个神经元的输出以生成第二长度的第二代码,所述第二长度小于所述第一长度。这样,当改变所生成的代码的位数时,无需花费大量时间和精力重新设计网络结构或划分数据集,就可以得到精确的代码生成模型。并且,能够显式地评估代码的每一位的重要性并进行优化,更有针对性地减少代码的冗余。
这里,本领域技术人员可以理解,本申请中的代码可以是在图像检索领域中使用的二值哈希码,也可以是其它类型的代码。本申请实施例的方案适用于各种通过深度神经网络生成代码且所生成的代码的每一位对应于一个神经元的输出的情况。因此,本申请并不限制所使用的深度神经网络的网络结构和所生成的代码的具体类型。
在介绍了本申请的基本原理之后,下面将参考附图来具体介绍本申请的各种非限制性实施例。
示例性系统
图1图示了根据本申请实施例的代码生成方法的系统示例的示意图。
如图1所示,在根据本申请实施例的代码生成方法中,在融合之前,深度神经网络100具有N个输出位B1、B2、…、BN,从而针对输入数据集P1输出具有N位的第一代码Bin。
神经元融合层110设置于所述深度神经网络100的最后一层之后,其将所述深度神经网络100的所述N个输出位B1、B2、…、BN融合为M组输出位C1、C2、…、CM,其中M<N,因此每组输出位包含一个或多个输出位。这样,针对同样的输入数据集P1,输出具有M位的第二代码Bout。
下面,将具体说明根据本申请实施例的代码生成方法。
示例性方法
图2图示了根据本申请实施例的代码生成方法的流程图。
如图2所示,根据本申请实施例的代码生成方法包括:S210,通过深度神经网络从输入数据集获得第一长度的第一代码,所述深度神经网络的每个神经元输出所述第一代码的一位代码;S220,通过神经元融合层将所述深度神经网络的神经元划分为多个分组;以及S230,选择所述每个分组中的一个神经元的输出以生成第二长度的第二代码,所述第二长度小于所述第一长度。
在步骤S210中,通过深度神经网络从输入数据集获得第一长度的第一代码,所述深度神经网络的每个神经元输出所述第一代码的一位代码。这里,本领域技术人员可以理解,例如在深度监督哈希算法中,所生成的哈希码的每一位实际上是深度神经网络的每个神经元的输出。因此,如图1所示,对于具有N个输出位B1、B2、…、BN的深度神经网络,生成具有N位长度的代码Bin。
针对深度神经网络的初始参数,可以根据经验以及实际所使用的数据集来确定。例如,可以利用已有的深度哈希方法,初始化一个深度哈希网络。这里,假定初始的网络输出位数的值为N,此初始化数值应大于最终输出的代码Bout的位数,例如M。
这里,本领域技术人员可以理解,所述深度神经网络可以进一步基于数据集来进行训练,例如,所述训练过程可包括N1次迭代。
在步骤S220中,通过神经元融合层将所述深度神经网络的神经元划分为多个分组。具体地,在根据本申请实施例的代码生成方法中,可以通过训练得到神经元融合层。下面,将参考图3和图4进行具体说明。
图3图示了根据本申请实施例的代码生成方法中神经元融合层的训练过程的示意图。为了进行神经元融合层的训练,首先需要采集数据集或者利用已有数据集,得到深度神经网络的训练集。这里,如果训练集的数据量过大,在训练神经元融合层时可以不使用整个训练集,而是可以从训练集中随机划分出一个验证集,以用于对神经元融合层进行训练。
如图3所示,在训练神经元融合层时,利用例如事先划分好的验证集计算每个神经元的冗余度,也就是说,在训练状态下,所述深度神经网络的所有神经元都产生输出。接下来,通过平衡每个神经元的冗余度来更新神经元融合层中每个神经元之间的邻接关系,使得冗余度更小,即训练此神经元融合层。这里,冗余度指的是根据验证集,去掉所对应的神经元之后的精度下降程度。并且,通过平衡每个神经元的冗余度,可以基于神经元的输出与已知结果来计算误差,并利用误差的反向传播来更新每个神经元之间的邻接关系。例如,该训练过程可以包括N2次迭代。
因此,在根据本申请实施例的代码生成方法中,所述神经元融合层通过基于验证数据集的训练得到,所述训练过程包括:计算所述深度神经网络的每个神经元的冗余度,所述冗余度表示所述神经元对应的精度改变程度;以及,通过训练所述神经元融合层以更新所述每个神经元之间的邻接关系以使得冗余度更小。
并且,在上述代码生成方法中,所述深度神经网络通过基于训练数据集的训练得到,所述验证数据集是从所述训练数据集随机划分得到的。
图4图示了根据本申请实施例的代码生成方法中神经元融合层的固定过程的示意图。如图4所示,根据每个神经元之间的邻接关系,可以将神经元融合层的参数二值化,进入固定状态,即确定哪些神经元被合成为一组,从而仅产生一位输出。这里,当若干个神经元被融合成为一组后,随机选择该组神经元中的某个作为输出。
另外,如图4所示,在固定过程中,为了获得更精确的代码生成模型,还需要进一步训练包括深度神经网络和神经元融合层的整个网络。也就是,针对获得的神经元融合层,可以基于训练数据集获得用于验证的代码,并与真实的代码进行比较以计算训练误差,并通过反向传播训练整个网络。例如,该训练过程可以包括N3次迭代。
也就是,在根据本申请实施例的代码生成方法中,所述训练过程进一步包括:基于所述每个神经元之间的邻接关系对所述神经元融合层的参数进行二值化;以及,基于所述二值化的参数确定所述神经元划分为的多个分组。
在步骤S230中,选择所述每个分组中的一个神经元的输出以生成第二长度的第二代码,所述第二长度小于所述第一长度。这里,如上所述,针对每个分组的神经元,可以随机选择其中一个来作为输出。
因此,根据本申请实施例的代码生成方法首先通过在深度哈希网络最后一层叠加一层神经元融合层来显式地评估每一个神经元的重要性,通过平衡每个神经元的冗余度来更新神经元之间的邻接关系,然后,根据神经元的邻接关系来融合相应的神经元使得每个神经元的重要性更加平衡。
并且,在上述代码生成方法中,所述训练过程进一步包括:通过所述深度神经网络和所述神经元融合层从所述训练数据集获得验证代码;通过所述验证代码计算训练误差;以及,基于所述训练误差以反向传播训练所述深度神经网络和所述神经元融合层。
此外,在根据本申请实施例的代码生成方法中,可以采用渐进式的优化方式,逐步得到最终的优化结果。也就是说,针对最终需要的代码位数M,可以首先将N位神经元的输出优化为N’位,其中N>N’>M,然后再将N’位神经元的输出优化为M位。这样,通过逐步地叠加和优化多层神经元融合层,可以渐进地消除代码的冗余。
也就是,在根据本申请实施例的代码生成方法中,在选择所述每个分组中的一个神经元的输出以生成第二长度的第二代码之后进一步包括:确定所述第二代码的位数是否小于或者等于预定阈值;响应于所述第二代码的位数大于所述预定阈值,通过另一神经元融合层将所述多个分组合并以减小所述分组的数目;以及,选择所述合并后的每个分组中的一个神经元的输出以生成第三长度的第三代码,所述第三长度小于所述第二长度。
因此,本申请实施例的代码生成方法实际上提出了一种新的神经网络层,神经元融合层,来平衡每个神经元的冗余度,并且该层可以通过梯度的反向传播来优化。此外,在神经元融合层的基础上,本申请实施例的代码生成方法可以通过渐进的优化策略来逐渐减少哈希码的冗余。
示例性装置
图5图示了根据本申请实施例的代码生成装置的框图。
如图5所示,根据本申请实施例的代码生成装置300包括:深度神经网络单元310,用于通过深度神经网络从输入数据集获得第一长度的第一代码,所述深度神经网络的每个神经元输出所述第一代码的一位代码;神经元融合单元320,用于通过神经元融合层将所述深度神经网络的神经元划分为多个分组;以及,代码生成单元330,用于选择所述每个分组中的一个神经元的输出以生成第二长度的第二代码,所述第二长度小于所述第一长度。
在一个示例中,在上述代码生成装置300中,所述神经元融合层通过基于验证数据集的训练得到,所述训练过程包括:计算所述深度神经网络的每个神经元的冗余度,所述冗余度表示所述神经元对应的精度改变程度;以及,通过训练所述神经元融合层以更新所述每个神经元之间的邻接关系以使得冗余度更小。
在一个示例中,在上述代码生成装置300中,所述深度神经网络通过基于训练数据集的训练得到,所述验证数据集是从所述训练数据集随机划分得到的。
在一个示例中,在上述代码生成装置300中,所述训练过程进一步包括:基于所述每个神经元之间的邻接关系对所述神经元融合层的参数进行二值化;以及,基于所述二值化的参数确定所述神经元划分为的多个分组。
在一个示例中,在上述代码生成装置300中,所述训练过程进一步包括:通过所述深度神经网络和所述神经元融合层从输入数据集获得验证代码;通过所述验证代码计算训练误差;以及,基于所述训练误差以反向传播训练所述深度神经网络和所述神经元融合层。
在一个示例中,在上述代码生成装置300中,进一步包括:位数确定单元,用于确定所述第二代码的位数是否小于或者等于预定阈值;所述神经元融合单元320进一步用于响应于所述第二代码的位数大于所述预定阈值,通过另一神经元融合层将所述多个分组合并以减小所述分组的数目;以及,所述代码生成单元330进一步用于选择所述合并后的每个分组中的一个神经元的输出以生成第三长度的第三代码,所述第三长度小于所述第二长度。
在一个示例中,在上述代码生成装置300中,所述深度神经网络是深度哈希网络,且所述深度神经网络的每个神经元的输出是哈希码中的一位。
这里,本领域技术人员可以理解,上述代码生成装置300中的各个单元和模块的具体功能和操作已经在上面参考图2到图4描述的代码生成方法中详细介绍,并因此,将省略其重复描述。
如上所述,根据本申请实施例的代码生成装置300可以实现在各种终端设备中,例如用于生成代码的计算设备。一个示例中,根据本申请实施例的代码生成装置300可以作为一个软件模块和/或硬件模块而集成到所述终端设备中。例如,该装置300可以是该终端设备的操作系统中的一个软件模块,或者可以是针对于该终端设备所开发的一个应用程序;当然,该装置300同样可以是该终端设备的众多硬件模块之一。
替换地,在另一示例中,该代码生成装置300与该终端设备也可以是分立的设备,并且该装置300可以通过有线和/或无线网络连接到该终端设备,并且按照约定的数据格式来传输交互信息。
示例性电子设备
下面,参考图6来描述根据本申请实施例的电子设备。
图6图示了根据本申请实施例的电子设备的框图。
如图6所示,电子设备10包括一个或多个处理器11和存储器12。
处理器11可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备10中的其他组件以执行期望的功能。
存储器12可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器11可以运行所述程序指令,以实现上文所述的本申请的各个实施例的代码生成方法以及/或者其他期望的功能。在所述计算机可读存储介质中还可以存储诸如训练数据集、验证数据集、神经元冗余度等各种内容。
在一个示例中,电子设备10还可以包括:输入装置13和输出装置14,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。
例如,该输入装置13可以包括例如键盘、鼠标等等。
该输出装置14可以向外部输出各种信息,包括生成的代码等。该输出装置14可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
当然,为了简化,图6中仅示出了该电子设备10中与本申请有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备10还可以包括任何其他适当的组件。
示例性计算机程序产品和计算机可读存储介质
除了上述方法和设备以外,本申请的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本申请各种实施例的代码生成方法中的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本申请实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本申请的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本申请各种实施例的代码生成方法中的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本申请的基本原理,但是,需要指出的是,在本申请中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本申请的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本申请为必须采用上述具体的细节来实现。
本申请中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
还需要指出的是,在本申请的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本申请的等效方案。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本申请。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本申请的范围。因此,本申请不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本申请的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。
Claims (16)
1.一种代码生成方法,包括:
通过深度神经网络从输入数据集获得第一长度的第一代码,所述深度神经网络的每个神经元输出所述第一代码的一位代码;
通过神经元融合层将所述深度神经网络的神经元划分为多个分组;以及
选择所述每个分组中的一个神经元的输出以生成第二长度的第二代码,所述第二长度小于所述第一长度。
2.如权利要求1所述的代码生成方法,其中,所述神经元融合层通过基于验证数据集的训练得到,所述训练过程包括:
计算所述深度神经网络的每个神经元的冗余度,所述冗余度表示所述神经元对应的精度改变程度;以及
通过训练所述神经元融合层以更新所述每个神经元之间的邻接关系以使得冗余度更小。
3.如权利要求2所述的代码生成方法,其中,所述深度神经网络通过基于训练数据集的训练得到,所述验证数据集是从所述训练数据集随机划分得到的。
4.如权利要求2所述的代码生成方法,其中,所述训练过程进一步包括:
基于所述每个神经元之间的邻接关系对所述神经元融合层的参数进行二值化;以及
基于所述二值化的参数确定所述神经元划分为的多个分组。
5.如权利要求4所述的代码生成方法,其中,所述训练过程进一步包括:
通过所述深度神经网络和所述神经元融合层从所述训练数据集获得验证代码;
通过所述验证代码计算训练误差;以及
基于所述训练误差以反向传播训练所述深度神经网络和所述神经元融合层。
6.如权利要求1所述的代码生成方法,其中,在选择所述每个分组中的一个神经元的输出以生成第二长度的第二代码之后进一步包括:
确定所述第二代码的位数是否小于或者等于预定阈值;
响应于所述第二代码的位数大于所述预定阈值,通过另一神经元融合层将所述多个分组合并以减小所述分组的数目;以及
选择所述合并后的每个分组中的一个神经元的输出以生成第三长度的第三代码,所述第三长度小于所述第二长度。
7.如权利要求1到6中任意一项所述的代码生成方法,其中,所述深度神经网络是深度哈希网络,且所述深度神经网络的每个神经元的输出是哈希码中的一位。
8.一种代码生成装置,包括:
深度神经网络单元,用于通过深度神经网络从输入数据集获得第一长度的第一代码,所述深度神经网络的每个神经元输出所述第一代码的一位代码;
神经元融合单元,用于通过神经元融合层将所述深度神经网络的神经元划分为多个分组;以及
代码生成单元,用于选择所述每个分组中的一个神经元的输出以生成第二长度的第二代码,所述第二长度小于所述第一长度。
9.如权利要求8所述的代码生成装置,其中,所述神经元融合层通过基于验证数据集的训练得到,所述训练过程包括:
计算所述深度神经网络的每个神经元的冗余度,所述冗余度表示所述神经元对应的精度改变程度;以及
通过训练所述神经元融合层以更新所述每个神经元之间的邻接关系以使得冗余度更小。
10.如权利要求9所述的代码生成装置,其中,所述深度神经网络通过基于训练数据集的训练得到,所述验证数据集是从所述训练数据集随机划分得到的。
11.如权利要求9所述的代码生成装置,其中,所述训练过程进一步包括:
基于所述每个神经元之间的邻接关系对所述神经元融合层的参数进行二值化;以及
基于所述二值化的参数确定所述神经元划分为的多个分组。
12.如权利要求11所述的代码生成装置,其中,所述训练过程进一步包括:
通过所述深度神经网络和所述神经元融合层从输入数据集获得验证代码;
通过所述验证代码计算训练误差;以及
基于所述训练误差以反向传播训练所述深度神经网络和所述神经元融合层。
13.如权利要求8所述的代码生成装置,进一步包括:
位数确定单元,用于确定所述第二代码的位数是否小于或者等于预定阈值;
所述神经元融合单元进一步用于响应于所述第二代码的位数大于所述预定阈值,通过另一神经元融合层将所述多个分组合并以减小所述分组的数目;以及
所述代码生成单元进一步用于选择所述合并后的每个分组中的一个神经元的输出以生成第三长度的第三代码,所述第三长度小于所述第二长度。
14.如权利要求8到13中任意一项所述的代码生成装置,其中,所述深度神经网络是深度哈希网络,且所述深度神经网络的每个神经元的输出是哈希码中的一位。
15.一种电子设备,包括:
处理器;以及
存储器,在所述存储器中存储有计算机程序指令,所述计算机程序指令在被所述处理器运行时使得所述处理器执行如权利要求1-7中任一项所述的代码生成方法。
16.一种计算机可读介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行如权利要求1-7中的任一项所述的代码生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810988503.2A CN109241322B (zh) | 2018-08-28 | 2018-08-28 | 代码生成方法、代码生成装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810988503.2A CN109241322B (zh) | 2018-08-28 | 2018-08-28 | 代码生成方法、代码生成装置和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109241322A true CN109241322A (zh) | 2019-01-18 |
CN109241322B CN109241322B (zh) | 2020-09-11 |
Family
ID=65068768
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810988503.2A Active CN109241322B (zh) | 2018-08-28 | 2018-08-28 | 代码生成方法、代码生成装置和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109241322B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109992250A (zh) * | 2019-04-15 | 2019-07-09 | 深圳怡化电脑股份有限公司 | 一种自动编程的方法、装置、服务器及存储介质 |
CN113157255A (zh) * | 2021-03-22 | 2021-07-23 | 成都淞幸科技有限责任公司 | 一种面向语法树解码器的代码生成方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009049895A (ja) * | 2007-08-22 | 2009-03-05 | Shinichiro Yumura | データ圧縮方法及び画像表示方法及び表示画像拡大方法 |
CN105512273A (zh) * | 2015-12-03 | 2016-04-20 | 中山大学 | 一种基于可变长深度哈希学习的图像检索方法 |
CN106503106A (zh) * | 2016-10-17 | 2017-03-15 | 北京工业大学 | 一种基于深度学习的图像哈希索引构建方法 |
CN107481295A (zh) * | 2017-08-14 | 2017-12-15 | 哈尔滨工业大学 | 基于动态字节长度分配的卷积神经网络的图像压缩系统 |
CN108108657A (zh) * | 2017-11-16 | 2018-06-01 | 浙江工业大学 | 一种基于多任务深度学习的修正局部敏感哈希车辆检索方法 |
-
2018
- 2018-08-28 CN CN201810988503.2A patent/CN109241322B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009049895A (ja) * | 2007-08-22 | 2009-03-05 | Shinichiro Yumura | データ圧縮方法及び画像表示方法及び表示画像拡大方法 |
CN105512273A (zh) * | 2015-12-03 | 2016-04-20 | 中山大学 | 一种基于可变长深度哈希学习的图像检索方法 |
CN106503106A (zh) * | 2016-10-17 | 2017-03-15 | 北京工业大学 | 一种基于深度学习的图像哈希索引构建方法 |
CN107481295A (zh) * | 2017-08-14 | 2017-12-15 | 哈尔滨工业大学 | 基于动态字节长度分配的卷积神经网络的图像压缩系统 |
CN108108657A (zh) * | 2017-11-16 | 2018-06-01 | 浙江工业大学 | 一种基于多任务深度学习的修正局部敏感哈希车辆检索方法 |
Non-Patent Citations (1)
Title |
---|
夏炎: "大规模图像数据中相似图像的快速搜索", 《中国博士学位论文全文数据库 信息科技辑》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109992250A (zh) * | 2019-04-15 | 2019-07-09 | 深圳怡化电脑股份有限公司 | 一种自动编程的方法、装置、服务器及存储介质 |
CN109992250B (zh) * | 2019-04-15 | 2022-08-30 | 深圳怡化电脑股份有限公司 | 一种自动编程的方法、装置、服务器及存储介质 |
CN113157255A (zh) * | 2021-03-22 | 2021-07-23 | 成都淞幸科技有限责任公司 | 一种面向语法树解码器的代码生成方法 |
CN113157255B (zh) * | 2021-03-22 | 2022-07-05 | 成都淞幸科技有限责任公司 | 一种面向语法树解码器的代码生成方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109241322B (zh) | 2020-09-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230252327A1 (en) | Neural architecture search for convolutional neural networks | |
US20230368024A1 (en) | Neural architecture search | |
US11741342B2 (en) | Resource-efficient neural architects | |
US10984319B2 (en) | Neural architecture search | |
US20180240010A1 (en) | Technologies for optimized machine learning training | |
CN109948149B (zh) | 一种文本分类方法及装置 | |
CN110287961A (zh) | 中文分词方法、电子装置及可读存储介质 | |
CN109190754A (zh) | 量化模型生成方法、装置和电子设备 | |
CN110647920A (zh) | 机器学习中的迁移学习方法及装置、设备与可读介质 | |
US20210035556A1 (en) | Fine-tuning language models for supervised learning tasks via dataset preprocessing | |
WO2019083519A1 (en) | NATURAL LANGUAGE PROCESSING USING A N-GRAM MACHINE | |
JP7457125B2 (ja) | 翻訳方法、装置、電子機器及びコンピュータプログラム | |
JP2022529664A (ja) | ランダム化された意図ベクトル近接性からの意図認識モデルの作成 | |
CN102184205A (zh) | 基于可扩展精度混沌哈希的多模式串匹配算法 | |
CN111105029A (zh) | 神经网络的生成方法、生成装置和电子设备 | |
CN109960815A (zh) | 一种神经机器翻译nmt模型的创建方法及系统 | |
CN112200296A (zh) | 网络模型量化方法、装置、存储介质及电子设备 | |
KR102190105B1 (ko) | 인공 신경망의 파라미터 셋을 결정하는 방법 | |
CN109145107B (zh) | 基于卷积神经网络的主题提取方法、装置、介质和设备 | |
KR20220013896A (ko) | 프로세서의 신경망 아키텍처를 결정하기 위한 방법 및 장치 | |
CN109388614A (zh) | 一种目录文件个数配额的方法、系统及设备 | |
CN109241322A (zh) | 代码生成方法、代码生成装置和电子设备 | |
CN111260056B (zh) | 一种网络模型蒸馏方法及装置 | |
CN109597982A (zh) | 摘要文本识别方法及装置 | |
CN107402905A (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 |