          shuffle(data)
          while True:
              size = batchsize
              if i+size > length:
                  shuffle(data)
                  i = 0
                  epoch+=1
              rtn = numpy.float32([self.read_image(img) for img in data[i:i+size]])
              i+=size
              yield epoch, rtn[:,0,:,:,:], rtn[:,1,:,:,:]       
 
</s> remove         shuffle(data)
 </s> add         if doShuffle:
            shuffle(data)
 </s> remove     def minibatch(self, data, batchsize):
 </s> add     def minibatch(self, data, batchsize, doShuffle=True):
 </s> remove     def minibatchAB(self, images, batchsize):
        batch = BackgroundGenerator(self.minibatch(images, batchsize), 1)
 </s> add     def minibatchAB(self, images, batchsize, doShuffle=True):
        batch = lib.utils.BackgroundGenerator(self.minibatch(images, batchsize, doShuffle), 1)

                if doShuffle:
                    shuffle(data)

          shuffle(data)
          while True:
              size = batchsize
              if i+size > length:
                if doShuffle:
                    shuffle(data)
                  i = 0
                  epoch+=1
              rtn = numpy.float32([self.read_image(img) for img in data[i:i+size]])
              i+=size
              yield epoch, rtn[:,0,:,:,:], rtn[:,1,:,:,:]       
keep keep keep keep replace keep keep keep keep keep
 Add timelapse functionality (#512)

* add new cli options

* add timelapse script

* add batch size on image generation

* fix circular dependency

* add attribute check

* refactor to 3 parameters

* fix some typos

* do not shuffle the set

* default to models folder when no timelapse output supplied

* almost forgot this 
lib/training_data.py