半监督GAN的散列特征表示学习方法与流程

文档序号:17742422发布日期:2019-05-24 20:17阅读:228来源:国知局
半监督GAN的散列特征表示学习方法与流程
本发明涉及机器学习技术,具体涉及一种半监督gan的散列特征表示学习方法。
背景技术
:基于内容的海量图像检索广泛应用于电子商务、医疗诊断以及商标和知识产权领域,通常通过提取的图像特征进行相似匹配,度量内容相似图像。手工提取特征的方式将颜色、纹理、形状、轮廓等作为图像的特征表示,在一定程度上提高了图像检索的准确性。但手工的方式只能提取到图像低层次的颜色、纹理等特征,不能提取到图像高层次的抽象语义特征。特征表示学习能够从图像中自动地抽取对分类、检索或预测对任务有用的特征,如深度神经网络能提取图像从像素级的原始信息到抽象的语义概念信息,自动学习到图像丰富的语义特征。但海量的图像数据中存在大量的无标签的数据,有监督的深度学习方法只能利用少量有标签的图像学习图像的语义特征,容易产生过拟合,泛化能力差。技术实现要素:本发明的目的在于提供一种半监督gan的散列特征表示学习方法。实现本发明目的的技术解决方案为:一种半监督gan的散列特征表示的学习方法,包括如下步骤:步骤1、构建dsh-sgans网络架构:通过2个及以上的生成式对抗网络组成dsh-sgans网络,其中第一个生成式对抗网络以图像和标签向量为输入,其余生成式对抗网络以前一个分支的隐含特征和标签向量为输入;步骤2、进行网络优化:考虑深度散列优化目标、对抗优化目标、分类优化目标和结构一致优化目标,优化生成网络和判别网络;步骤3、特征表示:利用优化后的网络,确定待分析图像的散列特征表示。步骤1中,dsh-sgans中将无标签的图像的标签向量用c={0}k来表示,即无标签图像的标签向量为零向量;将有标签的图像的标签向量用c={0,1}k表示,其中k为数据集中图像类别的个数,当图像属于第i类时,则对应的标签向量c的第i维为1。步骤2中,dsh-sgans中的每个判别网络只关注当前尺度的图像,各个判别网络各自分别优化,优化的目标为:式中,表示第i个gan中判别网络的优化目标,通过最大化进行判别网络的优化,m表示dsh-sgans中gan的个数,表示第i个gan所对应的有标签的真实图像,表示第i个生成网络生成的与同类的图像,表示第i个生成网络生成的与不同标签的图像,表示第i个gan所对应的无标签的真实图像,表示第i个生成网络以零向量作为标签向量生成的图像,分别表示第i个gan所对应的分类优化目标、判别网络的对抗优化目标和深度散列优化目标,为了通用性,将i去除,对各目标函数进行说明,其中:式中,h(.)表示散列层网络的输出,la(.)表示图像属于真实图像或生成图像的判别损失函数,lc(.)表示图像属于某个类别的判别损失函数。步骤2中,dsh-sgans中的所有分支的生成网络被一起训练去逼近多个尺度的图像,整个生成网络的优化目标为:其中:式中,lg表示整个生成网络的优化目标,通过最大化lg,进行整个生成网络的优化,表示第i个gan中生成网络的优化目标,m表示dsh-sgans中gan的个数,表示第i个gan所对应的有标签的真实图像,表示第i个生成网络生成的与同类的图像,表示第i个生成网络生成的与不同标签的图像,表示第i个生成网络以零向量作为标签向量生成的图像,分别表示第i个gan所对应的分类优化目标、生成网络的对抗优化目标、深度散列优化目标和结构一致化目标,为了通用性,将i去除,对各目标函数进行说明,其中:式中,h(.)表示散列层网络的输出,la(.)表示图像属于真实图像或生成图像的判别损失函数,lc(.)表示图像属于某个类别的判别损失函数,分别表示对图像的结构一致性优化目标。图像属于真实图像或生成图像的判别损失函数为:式中,d(x)表示x属于真实图像或者生成图像的概率,χ和χsyn分别为真实图像和生成网络生成的图像。图像属于某个类别的判别损失函数为:lc(x)=-logp(y=i|x)式中,i为x的标签,p(y=i|x)为x被划为第i类的概率。对于图像(i>0),结构一致性优化目标为:式中,μ=∑kxk/n表示生成图像的像素点的均值,xk=(r,g,b)t表示生成图像中的像素点,n表示像素点的个数,∑=∑k(xk-μ)(xk-μ)t/n表示生成图像的像素点的方差。其他的类似。本发明与现有技术相比,其显著优点为:本发明在无监督的sgans的基础上,引入部分标注语义信息,设计了端到端的半监督网络dsh-sgans,根据图像标注信息蕴含的图像之间的相似性,确定面向图像检索深度散列优化目标,挖掘图像标注的语义信息,提升了图像检索的准确率。附图说明图1是无监督sgans的网络结构图图2是本发明dsh-sgans散列特征学习的过程示意图。图3是条件gan的原理示意图。图4是ac-gans中生成网络的过程示意图。图5是图像分类以及真假图像判断的卷积网络示意图。图6是本发明dsh-sgans生成图像的过程示意图。图7是本发明半监督gans的卷积网络示意图。图8是本发明残差网络图。具体实施方式下面结合附图和具体实施例进一步说明本发明方案。无监督的gan学习到的图像的特征表示不是面向图像检索任务的,根据图像检索任务的特点,设计有针对性的优化目标,可以进一步提高图像检索的准确性。无监督sgans通过多个生成式对抗网络组成堆积网络,可以将复杂的图像层次结构的特征表示学习任务分为多个子任务,逐步学习图像低层次颜色、纹理等特征到高层次的抽象语义特征。本发明在无监督sgans的基础之上,引入部分标注语义信息,设计了端到端的半监督网络dsh-sgans(deepsemantichashingwithstackedgenerativeadversarialnetworks)。dsh-sgans根据图像标注信息蕴含的图像之间的相似性,利用图像之间相对相似性,设计面向图像检索深度散列优化目标,并且挖掘图像标注的语义信息,进一步提升图像检索的准确率。下文首先介绍了dsh-sgans网络结构,然后详细介绍了dsh-sgans的优化目标,最后介绍了dsh-sgans具体实现。一、半监督gan与图像检索利用无监督sgans提取图像的抽象语义特征,见图1,然后通过散列方法将图像的特征映射到低维的汉明空间可以获得图像的散列特征表示。通过两阶段的先提取特征再获取图像的散列特征表示,将图像特征表示学习和散列特征表示学习隔离开来,通过神经网络学习的特征表示不是面向图像检索任务的,某些特征可能是与图像检索任务不相关的,而有些与图像检索任务的特征可能丢失。图像检索任务通过比较图像数据库中图像与查询图像之间的距离,返回相应的图像。图像的标注信息不仅提供了图像的类别信息也蕴含了图像之间的相似性,查询图像与同类别图像之间的距离应该小于其与不同类图像之间的距离。根据图像检索任务的特点,本发明提出了端到端的半监督dsh-sgans,在sgans中加入面向图像检索的优化目标。dsh-sgans利用查询图像与同类别的图像和不同类图像之间的相对相似性,使得同类图像之间的汉明距离越小,不同类图像之间的汉明距离越大,引导图像的散列特征表示更具有聚集特性,提高图像检索的准确性。dsh-sgans也利用图像的标注信息充分挖掘图像的语义信息,进一步提高检索的准确性,利用大量无标签的图片用于学习图像隐含的特征。如图2,与两阶段的先学习图像特征表示然后再散列的方法不同,dsh-sgans是一个端到端的网络,图像的特征表示学习有针对性的优化图像的散列特征表示。dsh-sgans逐步学习图像的高层次的抽象语义信息,获得图像更多细节信息。二、dsh-sgans介绍gan通过生成网络和判别网络的对抗学习捕捉到真实图像数据的分布。条件生成式对抗网络(cgans)利用图像的标签或者图像描述的文本向量等作为条件,指导生成网络生成对应的图像。如图3所示,生成网络和判别网络都以额外的信息y作为输入条件。ac-gan(auxiliaryclassifiergenerativeadversarialnetworks)在cgan的基础上,在网络中加入了图像的分类,以图像的标签c作为生成网络的输入条件。ac-gan训练集中的图像都是有标签的。图像的标签向量:c={0,1}k其中,k为数据集中图像类别的个数。当图像属于第i类时,则对应的标签向量c的第i维为1。生成网络g用图像的标签c和随机噪声z∈n(0,1)作为图像,生成图像:xsyn=g(c,z)其过程如图4。图像的分类以及真实图像和生成图像的判断由卷积神经网络完成,使用第i类的标签向量生成的图像也属于第i类。对于所有有标签的图像xlab和生成图像xsyn,卷积神经网络需要判断其为真实的图像还是生成的图像,并且要能够正确的分类。图像的分类和真假图像的判断不需要由两个网络来处理,可由一个卷积神经网络完成,基本思想是:假设共有k类图像,标准的分类问题使用softmax函数输出k个值,代表该图像属于每个类别的概率。网络还需要完成真实图像和生成图像的判断,若把生成的图像看作第k+1类,即将原来的k类分类问题变为k+1类分类问题,则可以利用同一个卷积网络同时完成图像的分类和真假的图像的判断问题。图5展示了用于图像分类和真假图像判别的卷积网络的基本的网络结构。则图像为生成图像的概率可以表示为p(y=k+1|x),则图像为真实图像的概率:d(x)=1-p(y=k+1|x)在实际的应用中,判别网络的输出不必为k+1个单元。因为对于softmax函数来说,对于每个输出单元都减去同一个函数f(x),不会改变softmax函数的输出。所以如果让每一个输出单元都减去第k+1个输出单元outk+1,则outk+1=0。所以如果固定outk+1=0,则整个问题可以看作一个k分类的问题,减少了网络所需要学习的参数的数量。此时图像为真实图像的概率其中cgan和ac-gan都是有监督的gan。有监督的神经网络利用部分有标签的图像学习图像的特征表示,容易产生过拟合,泛化能力差。无监督的深度学习方法能够利用大量无标签的图像学习图像的更全面的抽象语义特征。但是无监督的方法学习的特征与接下来的任务是无关的。dsh-sgans是一个半监督的深度神经网络,利用大量无标签的图像数据学习图像抽象的语义特征,同时利用有标注的图像设计了面向图像检索的优化目标。dsh-sgans在ac-gan的启发下,在sgans基础之上使用图像的标注信息作为生成网络的输入条件,并向网络中添加了面向图像检索的深度散列特征学习和用于挖掘图像标注语义信息的图像分类。dsh-sgans中无标签的图像的标签向量用c={0}k来表示,即无标签图像的标签向量为零向量。有标签的标签向量与上文提到的一样。图6是dsh-sgans生成图像的过程,图中展示了由3个gan组成的sgans。对于第一个gan,其输入由随机噪声向量z∈n(0,1)和类标签向量c连接而成,得到隐藏层特征:h0=f0(z,c)则由h0生成图像:对于分支i(i>0),其输入为上一个分支的隐藏层特征hi-1和图像的标签向量c:hi=fi(hi-1,c)则由hi生成图像:与上文提到的一样,由第i类的标签向量生成的图像即为此类的图像,所以在dsh-sgans有标签的图像包括图像数据库中已有的有标签的图像以及用标签向量生成的图像。无标签的图像包括图像数据库中未被标记的图像以及使用零向量作为图像标签生成的图像。图7展示了dsh-sgans中判别网络的结构。判别网络的输入分别为有标签的图像、无标签的图像以及生成的有标签的图像和无标签的图像,实现了图像的散列表示、真假图像的判断以及图像的分类。有标签的图像将用于图像的散列表示的学习以及图像的分类。所有的图像包括有标签图像和无标签图像都用于生成式对抗网络的对抗学习。图像的散列学习、图像的对抗和图像的分类共享网络的前几层。在网络的后面加入散列层用于生成图像的散列表示,分类层用于实现真假图像的判断以及有标签图像的分类。三、dsh-sgans优化目标3.1基本思想无监督sgans特征表示学习图像抽象的高层次特征不是面向图像检索任务的。利用图像检索任务的特点,设计相应的特征抽取目标,并结合gan网络的特点能在sgans的基础之上进一步提升图像检索任务的准确率。图像的标注信息不仅表明了图像的语义信息而且蕴含了图像之间的相似性,而图像检索任务就是通过比较图像之间的距离表示图像之间的相似性,返回与查询图像相似的图像。dsh-sgans正是利用了图像的标注的信息,利用查询图像与相似图像和不相似图像之间的相对相似性,在网络中加入深度散列的优化目标,引导网络学习更具有聚集特性的散列特征表示。图像的相对相似性深度散列优化目标不仅保留了图像之间的相似性,而且考虑到了图像之间的相对相似性,检索的准确进一步提高。考虑到现实中往往存在大量的无标签图像,只有部分图像有标注信息,dsh-sgans被设计为半监督的神经网络,利用gan能够从无标注图像中捕捉真实图像的分布的特点,逐步学习图像高层次的语义特征,同时dsh-sgans利用有标签图像的分类任务挖掘图像的语义信息。图像的散列特征表示其实是学习函数映射:h:x→{0,1}k其中k表示每张图像将被编码为长度为k个比特的二值编码。每一张图像通过神经网络获得其散列特征表示,保留图像之间在高维特征空间的语义相似性。已有基于有监督的深度神经网络的方法利用两张图像之间的相似性学习图像的散列表示,学习到的图像的散列特征表示保留了图像之间的相似性。而利用图像之间的相对相似性优化图像的散列特征,不仅能保留图像之间的相似性,而且保留了图像之间的相对相似性,基本思想是对于图像i、i+和i-(i与i+同类别,与i-不同类别),图像i应该与图像i+更相似。利用图像之间的相对相似性将比利用图像对的相似性能得到更好的结果,dsh-sgans正是利用了图像之间的相对相似性。dsh-sgans获取(i,i+,i-)这样的三元组是容易的。dsh-sgans中的每个gan都是一个cgan,根据生成网络输入的标签向量引导生成网络生成对应类别的图像。所以对于有标签的图像xlab,可以生成与xlab同类别的图像以及与xlab有不同类别的图像图像的深度散优化目标正是利用图像xlab、和之间的相对相似性,基本思想是:不同类别图像的散列特征表示之间的汉明距离应该大于同类别图像的散列表示的汉明距离,即xlab与之间的汉明距离应该大于xlab与之间的汉明距离。利用图像的类别作为生成网络的输入条件,生成网络能生成多样并且符合现实的图像。考虑到真实有标签的图像所组成查询图像、与查询图像相似图像以及不相似的图像组成的图像三元组的数量有限,而gan能够生成多样的且符合现实的图像,所以本文利用gan的这些特点,利用真实图像与生成的图像组成的三元组之间的相对相似性作为优化图像散列特征的目标,同时通过对生成图像分类进一步引导gan生成对应类别的图像。3.2深度散列优化目标对于大规模的图像检索任务来说,以何种方式来表示图像抽象语义对图像的检索准确性和检索的时间效率至关重要。用二值编码作为图像的散列特征表示,利用汉明距离作为图像距离的度量标准,无论在检索速度还是在存储空间上比一般方法都有较好的表现。图像的散列特征表示要能反映相似图像的聚集特性,相似的图像在汉明空间中应更近。以往的散列方法没有考虑图像之间的相对相似性,仅仅考虑了图像之间的相似性。但是根据图像的标签对查询图像x来说,与其同类别的图像x+应该是比与其类别不同的图像x-更相似。qidai等人和hanjianglai等人通过图像之间的相对相似性优化图像的散列特征表示,提升了检索的效率。利用图像的标签信息作为生成网络的输入条件可以生成对应类别的图像。假设xlab为训练集中有标签的图像,则生成网络可以生成与xlab同类别的图像:其中随机噪声z∈n(0,1),c为xlab所属类别对应的标签向量。同时生成网络可以生成与xlab不同类别的图像:c1为xlab所属类别不同的类所对应的标签向量(本文中随机选择一个与xlab不同类别的标签向量)。以xlab为查询图像,则xlab与之间的距离应该小于与之间的距离,即xlab应该与更相似。用h(x)表示散列层网络的输出,用b(x)表示图像x的散列特征表示,则其中k为图像散列表示的长度(散列层输出单元的个数)。b(x)为图像的二值编码的散列特征表示,由图像的散列层的输出将小于0.5的值变为0,大于0.5值变为1得到。xlab应该与更相似,即b(xlab)与之间的汉明距离应该小于b(xlab)与的汉明距离。深度散列优化的目标最小化b(xlab)与的距离,最大化b(xlab)与之间的汉明距离。所以散列优化目标为:其中||·||h代表汉明距,当相对距离大于1时进行优化。上面损失函数的优化是一个np-hard的混合整数优化问题,是难以优化的。将输出值的限定在一定的范围内(sigmoid将输出值限定在[0,1]),上面的问题可以转化为一个连续值的优化问题。本文放松条件限制,用连续值h(xlab)、和代替b(xlab)、和用欧式距离代替汉明距离作为图像相似度的度量。此时深度散列优化的目标函数为:其中,3.3对抗优化目标原始生成式对抗网络是一个无条件的神经网络,由生成网络g和判别网络d组成。生成网络g捕捉真实图像的分布,判别网络d用于判别输入图像是真实图像还是生成图像的概率。生成网络以随机变量z作为输入,生成图像xsyn=g(z)。判别网络d判别图像来自于真实的图像xreal还是生成的图像xsyn,学习一个概率分布p(s|x)=d(x)。生成式对抗文网络其实是二元极大极小博弈游戏。则其判别的损失la可以如下定义:其中,χ和χsyn分别为训练集图像和生成网络生成的图像。代入式知:对于判别网络d目标是最小化la(xreal)+la(xsyn)的对抗损失,尽可能的判别出图像的真假。原始生成式对抗网络中生成网络g最大化生成图像的对抗损失la(xsyn),尽可能让判别网络将生成的图像判别为真实的图像。本文提出的半监督的sgans中真实的图像包括xlab和xunlab,生成网络生成的图像包括与xlab同标签图像和不同标签的图像以及使用零向量作为标签向量生成的图像其优化目标为:生成网络尽可能生成与真实图像相近的图像。生成网络优化目标为:3.4分类优化目标图像的标注信息不仅仅提供了图像所属的类别,也能用于挖掘图像的语义结构的信息。如果能在网络训练过程中考虑到图像的标注信息,则网络不仅能够学习到图像在像素级别的特征,也能学习到图像标注的语义特征。在一般的多类别分类问题中,使用softmax来优化分类问题,softmax的公式为:其中,z向量表示图像属于各个类别的分数,zi表示图像属于类别i的分数。对于被给的图像x,则其损失函数定义为:lc(x)=-logp(y=i|x)其中i为x的标签。在半监督的sgans中,图像分类的优化主要针对于有标签的图像。有标签的图像主要包括训练集中有标签的数据xlab、生成网络g生成的与xlab同标签的图像和生成网络g生成的与xlab不同标签的图像所以半监督gan的分类优化目标为:3.5结构一致性优化目标与3.2中一样,结构一致性的目的是为了最小化不同gan生成图像之间的均值和方差,有助于生成网络生成高质量的图像。假设xk=(r,g,b)t表示生成图像中的一个像素点,生成图像的像素点的均值:μ=∑kxk/n生成图像的像素点的方差为:∑=∑k(xk-μ)(xk-μ)t/ndsh-sgans的第i个gan生成与真实图像同标签的图像不同标签的图像和使用零向量作为标签向量生成的图像则和应保持结构一致性,和应保持结构一致性,和应保持结构的一致性。本文的实现中,dsh-sgans共有3个gan构成,对于图像(i>0),结构一致性优化目标为:对于图像对于图像(i>0),结构一致性优化目标为:对于图像对于图像(i>0)结构一致性优化目标为:其中λ1和λ2为超参数,在本文中分别设置为1和4。因此,dsh-gans的第i(i>0)个gan的结构一致化优化目标为:第0个生成网络的优化目标3.6dsh-gans优化目标条件式生成网络是对原始的gan的扩展,在生成网络和判别网络中都加入类的标签、文本描述等信息作为条件。相应的目标函数为:在cgan的基础上,ac-gans将图像的类别信息作为条件生成式对抗网络的输入条件,将图像的分类任务加入到网络中。目标函数包含分类优化目标和对抗优化目标,分类优化目标为:lc=-[logp(c=c|xreal)+logp(c=c|xsyn)]其中xreal为真实的图像,xsyn为生成的图像。对抗优化目标为:la=-[logp(s=real|xreal)+logp(s=fake|xsyn)]ac-gans中判别网络最小化lc+la,而生成网络最小化lc-la。在ac-gans启发下,dsh-sgans将无标签的图像加入到网络的训练中来,并向网络中引入面向检索的深度散列优化目标。dsh-sgans由多个gan组成,对于第i个gan,其判别网络的优化目标为:其中,表示第i个gan所对应的有标签的真实图像,表示第i个生成网络生成的与同类的图像。表示第i个生成网络生成的与不同标签的图像。表示第i个gan所对应的无标签的真实图像。表示第i个生成网络以零向量作为标签向量生成的图像。dsh-sgans中的每个判别网络只关注当前尺度的图像,各个判别网络各自分别优化。生成网络的优化目标为:如sgans一样,所有分支的生成网络被一起训练去逼近多个尺度的图像分布所以整个网络的生成优化目标为:其中m为dsh-sgans中gan的个数。四、网络训练流程算法1是dsh-sgans的训练流程。网络训练的batch-size的大小为m,每次分别从n(0,1)随机采样m个多维随机向量z+,z-和z。然后对于每个gan随机从训练集中采样m个有标签的图像及其对应的标签向量和无标签的图像及其对应的标签向量。各个生成网络以图像的标签信息作为条件,通过神经网络fi得到隐含特征hi,gi利用hi生成对应大小的图像,然后依次计算每个判别网络的优化目标,优化各个判别网络。最后使用得到的所有的生成网络的优化目标的和优化整个生成网络。算法1dsh-sgans训练过程:五、实现细节本发明以半监督dsh-sgans为例,下面详细介绍各gan中生成网络和判别网络的具体实现细节,包括网络的层数以及每层网络的结构。判别神经网络共有3个,分别为d_net32、d_net64与d_net128,对应的输入图像的大小分别为32x32、64x64和128x128。与模型中介绍的一样,判别网络主要用于判别图像的真假。由于第一个生成式对抗网络的输入与之后的生成网络的输入不同,在实现生成网络时分为init_g和next_g。init_g用于第一个生成网络,以100维随机噪声z∈n(0,1)和标签向量c连接而成的向量作为输入,得到隐含特征h0。后面的生成网络都由next_g实现,以前一个分支的隐含特征hi和标签向量c作为输入,分别得到隐含的特征h1和h2。image_net用于由隐含特征生成图像。image_net(h0)生成32x32大小的图像,image_net(h1)生成64x64大小的图像,image_net(h2)生成128x128大小的图像。与无监督不同的是,第一个生成网络的输入为标签向量c和随机噪声连接而成的向量。而对于后面的生成网络,输入由标签向量c和隐含特征hi组成,其他基本一样。判别网络不仅仅用来判别图像为真实图像还是生成的图像,还用与实现图像的分类以及散列学习。5.1生成网络实现表1是upblock模块,主要指对输入上采样。其中,upsample将输入为(n,c,,w)的张量上采样为(n,c,h*scale_factor,w*scale_factor)。n指的是batchsize的大小,c是输入的通道数,h是输入的图像高度,w是输入图像的宽度。conv指的是卷积层。in_channels是输入特征图(featruemap)数量,out_channels指的是输出的特征图的数量。conv的第三个参数是卷积核(kernel)的大小,第四个参数指的是步长(stride)的大小,最后一个参数是填充(padding)的大小。bn(batchnormalization)解决反向传播中的梯度消失和梯度爆炸的问题。其公式为:其中e[x]和var[x]分别为对应维度的期望和方差。γ和β是可以学习的参数。glu(gatedlinearunits)是一个激活函数,为网络加入非线性的因素,也能在一定程度上缓解梯度消失的问题,和relu不同的是glu是一个连续函数,非单调的。假设y=[a,b]∈r2d,则其中a,b∈rd。glu([ab])的输出的张量形状的大小是y的一半。表1上采样模块upblock操作实现细节upsampleupsample(scale_factor=2,mode=’nearest’)convconv(in_channels,out_channels,3,1,1)bnbatch_norm2d(out_channels)activationglu()图8是一个残差网络,假设深度神经网络中h(x)-x→f(x),如果可以假设多个非线性层组合可以近似于一个复杂函数,那么同样可以假设隐含层的残差近似于某个复杂函数,可以将隐含层表示为:h(x)=f(x)+x。残差网络解决了神经网络层数过多导致梯度消失的问题,同时也提高了网络的性能。表2是本发明中使用的残差块。表2残差块resblock表3是init_g网络的结构。init_g网络以随机的噪声向量z和标签向量c作为输入。由一个线性层、bn层、激活层和3个上采样部分组成。线性层的输出用glu激活为网络加入非线性。表3init_g网络结构操作具体实现linearlinear(in_dim,img_size*32)bnbatchnorm1d(img_size*32)activationglu()upblockupblock(img_size,img_size)upblockupblock(img_size,img_size/2)upblockupblock(img_size/2,img_size/4)表4是next_g的网络结构。next_g由一个卷积层、一个残差块和一个上采样块组成。随机向量z首先被复制,然后与隐含特征hi-1在axis=1的维度上连接得到张量t作为next_g的输入。netxt_g网络主要是用来由隐含特征hi-1得到隐含特征hi,为生成图像做准备。表4next_g网络结构操作具体实现convconv(t,img_size,3,1,1)bnbatch_norm2d(img_size*2)activationglu()resblockresblock(img_size)upblockupblock(img_size,img_size/2)表5是image_net网络,该网络由一个卷积层构成。在卷积层后加入tanh激活函数。image_net以隐含特征hi作为输入,生成对应大小的图像。表5image_net网络结构操作具体实现convconv(in_channels,out_channels,3,1,1)activationtanh()5.2判别网络的实现表6是encode_image模块。该模块以图像数据作为输入,由多个卷积层、激活和bn组成。表6encode_image模块操作具体实现convconv(3,ndf,4,2,1)activationleakyrelu(0.2)convconv(img_size,img_sizex2,4,2,1)bnbatchnorm2d(img_sizex2)activationleakyrelu(0.2)convconv(img_sizex2,img_sizex4,4,2,1)activationbatchnorm2d(img_sizex4)convconv(img_sizex4,img_sizex8,4,2,1)bnbatchnorm2d(img_sizex8)activationleakyrelu(0.2)表7是d_net32的网络结构。d_net32由一个encode_image模块、线性层和激活层组成,用于图像分类和散列表示的线性层输入都来自于encode_image模块的输出。表7d_net32网络结构操作具体实现encode_imageencode_image(img_size)linearlinear(img_sizeximg_size,class_num)activationsoftmax():用于图像的分类linearlinear(img_sizeximage_size,hash_dim)activationsigmoid():用于图像的散列表示表8是block_leakyrelu模块,由一个卷积层、bn和激活层组成。表8block_leakyrelu模块操作具体实现convconv(in_channels,out_channels,3,1,1)bnbatchnorm2d(out_channels)activationleakyrelu(0.2)表9是down_block模块,与block_leakyrelu类似由卷积层、bn和激活层组成。down_block使得张量的空间尺寸减少一半。表9down_block模块操作具体实现convconv(in_channels,out_channels,4,2,1)bnbatchnorm2d(out_channels)activationleakyrelu(0.2)表10是d_net64的网络结构。d_net64由一个encode_imge模块和多个bn、激活层以及用于图像分类和散列表示的层,用于图像分类和散列表示的线性层输入都来自于block_leakyrelu的输出。表10d_net64的网络结构操作具体实现encode_imageencode_image(img_size)down_blockdown_block(img_sizex8,img_size*16)block_leakyrelublock_leakyrelu(img_sizex16,img_sizex8)linearlinear(img_sizeximg_size,class_num)activationsoftmax():用于图像的分类linearlinear(img_sizeximage_size,hash_dim)activationsigmoid():用于图像的散列表示表11是d_net128的网络结构。d_net128由一个encode_imge模块、2个down_block模块、2个block_leakyrelu模块和多个bn、激活层以及用于图像分类和散列表示的层。用于图像分类和散列表示的线性层输入都来自于第二个block_leakyrelu的输出。表11d_net128网络结构操作具体实现encode_imageencode_image(img_size)down_blockdown_block(img_sizex8,img_sizex16)down_blockdown_block(img_sizex16,img_sizex32)block_leakyrelublock_leakyrelu(img_sizex32,img_sizex16)block_leakyrelublock_leakyrelu(img_sizex16,img_sizex8)linearlinear(img_sizeximg_size,class_num)activationsoftmax():用于图像的分类linearlinear(img_sizeximage_size,hash_dim)activationrsigmoid():用于图像的散列表示当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1