コード例 #1
0
 def __init__(self,
              numchars=256,
              charembdim=50,
              charemb=None,
              charinnerdim=100,
              numwords=1000,
              wordembdim=100,
              wordemb=None,
              wordinnerdim=200,
              maskid=None,
              bidir=False,
              returnall=False,
              **kw):
     # char level inits
     if charemb is None:
         charemb = VectorEmbed(indim=numchars, dim=charembdim)
     else:
         charemb = charemb
         charembdim = charemb.outdim
     if not issequence(charinnerdim):
         charinnerdim = [charinnerdim]
     charlayers, lastchardim = MakeRNU.make(charembdim,
                                            charinnerdim,
                                            bidir=bidir)
     charenc = SeqEncoder(charemb,
                          *charlayers).maskoptions(maskid, MaskMode.AUTO)
     # word level inits
     if wordemb is None:
         wordemb = VectorEmbed(indim=numwords, dim=wordembdim)
     elif wordemb is False:
         wordemb = None
         wordembdim = 0
     else:
         wordemb = wordemb
         wordembdim = wordemb.outdim
     if not issequence(wordinnerdim):
         wordinnerdim = [wordinnerdim]
     wordlayers, outdim = MakeRNU.make(wordembdim + lastchardim,
                                       wordinnerdim,
                                       bidir=bidir)
     wordenc = SeqEncoder(None, *wordlayers).maskoptions(MaskMode.NONE)
     if returnall:
         wordenc.all_outputs()
     self.outdim = outdim
     super(WordCharSentEnc, self).__init__(l1enc=charenc,
                                           l2emb=wordemb,
                                           l2enc=wordenc,
                                           maskid=maskid)
コード例 #2
0
ファイル: enc.py プロジェクト: Natty307/teafacto
 def __init__(self,
              indim=400,
              inpembdim=50,
              inpemb=None,
              innerdim=100,
              maskid=None,
              bidir=False,
              **kw):
     if inpemb is None:
         if inpembdim is None:
             inpemb = IdxToOneHot(indim)
             inpembdim = indim
         else:
             inpemb = VectorEmbed(indim=indim, dim=inpembdim)
     else:
         inpembdim = inpemb.outdim
     lastdim = inpembdim
     if not issequence(innerdim):  # single encoder
         innerdim = [innerdim]
     rnns = []
     for innerdimi in innerdim:
         if not issequence(innerdimi):  # one layer in encoder
             innerdimi = [innerdimi]
         rnn, lastdim = MakeRNU.make(lastdim, innerdimi, bidir=bidir)
         rnns.append(rnn)
     self.outdim = lastdim
     super(SimpleSeqStar2Vec, self).__init__(inpemb,
                                             *rnns,
                                             maskid=maskid,
                                             **kw)
コード例 #3
0
ファイル: enc.py プロジェクト: zhongyunuestc/teafacto
 def makernu(inpembdim,
             innerdim,
             bidir=False,
             zoneout=False,
             dropout_h=False,
             dropout_in=False):
     return MakeRNU.make(inpembdim,
                         innerdim,
                         bidir=bidir,
                         zoneout=zoneout,
                         dropout_h=dropout_h,
                         dropout_in=dropout_in)
コード例 #4
0
ファイル: enc.py プロジェクト: Natty307/teafacto
 def makernu(inpembdim, innerdim, bidir=False):
     return MakeRNU.make(inpembdim, innerdim, bidir=bidir)
コード例 #5
0
 def getrnnfrominnerdim(self, innerdim, rnu=GRU):
     assert (len(innerdim) >= 2)
     initdim = innerdim[0]
     otherdim = innerdim[1:]
     return MakeRNU.make(initdim, otherdim, rnu=rnu)[0]
コード例 #6
0
ファイル: enc.py プロジェクト: lukovnikov/teafacto
 def makernu(inpembdim, innerdim, bidir=False):
     return MakeRNU.make(inpembdim, innerdim, bidir=bidir)
コード例 #7
0
ファイル: oldseqproc.py プロジェクト: lukovnikov/teafacto
 def getrnnfrominnerdim(self, innerdim, rnu=GRU):
     assert(len(innerdim) >= 2)
     initdim = innerdim[0]
     otherdim = innerdim[1:]
     return MakeRNU.make(initdim, otherdim, rnu=rnu)[0]