Example #1
0
 def batchloop():
     c = 0
     numex = 0
     prevperc = -1.
     terr = [0.0]
     numdigs = 2
     tt = TT("iter progress", verbose=verbose)
     tt.tick()
     while datafeeder.hasnextbatch():
         perc = round(c * 100. * (10**numdigs) /
                      datafeeder._numbats) / (10**numdigs)
         if perc > prevperc:
             terr0 = terr[0] * 1.0 / numex if numex > 0 else 0.0
             s = ("%." + str(numdigs) + "f%% \t error: %.3f") % (perc,
                                                                 terr0)
             tt.live(s)
             prevperc = perc
         sampleinps, batsize = datafeeder.nextbatch(withbatchsize=True)
         numex += batsize
         sampleinps = sampletransf(*sampleinps)
         eterr = trainf(*sampleinps)
         if len(terr) != len(eterr) and terr.count(0.0) == len(terr):
             terr = [0.0] * len(
                 eterr
             )  # ensure compatible size of terr (number of output scores)
         if self.average_err is True:
             terr = [
                 xterr + xeterr * batsize
                 for xterr, xeterr in zip(terr, eterr)
             ]
         else:
             terr = [
                 xterr + xeterr for xterr, xeterr in zip(terr, eterr)
             ]
         c += 1
     tt.stoplive()
     if self.average_err is True:
         terr = [xterr * 1.0 / numex for xterr in terr]
     return terr