      """ Predict faces from incoming queue """
      def __init__(self, in_queue, queue_size, arguments):
          logger.debug("Initializing %s: (args: %s, queue_size: %s, in_queue: %s)",
                       self.__class__.__name__, arguments, queue_size, in_queue)
          self.batchsize = min(queue_size, 16)
          self.args = arguments
          self.in_queue = in_queue
          self.out_queue = queue_manager.get_queue("patch")
          self.serializer = Serializer.get_serializer("json")
          self.faces_count = 0
 
</s> remove         if snapshot:
            self.snapshot_model()
 </s> add  </s> remove     def snapshot_model(self):
        """ Take a snapshot of the model at current state and back up """
        logger.info("Saving snapshot")
        src = os.path.dirname(self.filename)
        dst = get_folder("{}_{}".format(src, self.iterations))
        for filename in os.listdir(src):
            if filename.endswith(".bk"):
                continue
            srcfile = os.path.join(src, filename)
            dstfile = os.path.join(dst, filename)
            copyfunc = copytree if os.path.isdir(srcfile) else copyfile
            logger.debug("Saving snapshot: '%s' > '%s'", srcfile, dstfile)
            copyfunc(srcfile, dstfile)
        logger.info("Saved snapshot")

 </s> add 
        self.batchsize = self.get_batchsize(queue_size)
      """ Predict faces from incoming queue """
      def __init__(self, in_queue, queue_size, arguments):
          logger.debug("Initializing %s: (args: %s, queue_size: %s, in_queue: %s)",
                       self.__class__.__name__, arguments, queue_size, in_queue)
        self.batchsize = self.get_batchsize(queue_size)
          self.args = arguments
          self.in_queue = in_queue
          self.out_queue = queue_manager.get_queue("patch")
          self.serializer = Serializer.get_serializer("json")
          self.faces_count = 0
keep keep keep keep replace keep keep keep keep keep
 Minor changes

Convert - Force prediction batchsize to 1 when converting on CPU
Training: Move snapshot saving to outside of the save threads to avoid race condition
GUI Summary stats. Show iteration count for current training session (fixed to last save amount). 
scripts/convert.py