          """ Return whether this model has a predicted mask """
          return bool(self.model.state.mask_shapes)
  
      def load_model(self):
          """ Load the model requested for conversion """
          logger.debug("Loading Model")
          model_dir = get_folder(self.args.model_dir, make_folder=False)
          if not model_dir:
              logger.error("%s does not exist.", self.args.model_dir)
 
</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  </s> remove         if snapshot:
            self.snapshot_model()
 </s> add  </s> remove         # Put in a line break to avoid jumbled console
 </s> add  </s> remove     def save(self, should_backup=False, snapshot=False):
 </s> add     def save(self, should_backup=False):
    @staticmethod
    def get_batchsize(queue_size):
        """ Get the batchsize """
        is_cpu = GPUStats().device_count == 0
        batchsize = 1 if is_cpu else 16
        batchsize = min(queue_size, batchsize)
        logger.debug("Batchsize: %s", batchsize)
        return batchsize

          """ Return whether this model has a predicted mask """
          return bool(self.model.state.mask_shapes)
  
    @staticmethod
    def get_batchsize(queue_size):
        """ Get the batchsize """
        is_cpu = GPUStats().device_count == 0
        batchsize = 1 if is_cpu else 16
        batchsize = min(queue_size, batchsize)
        logger.debug("Batchsize: %s", batchsize)
        return batchsize

      def load_model(self):
          """ Load the model requested for conversion """
          logger.debug("Loading Model")
          model_dir = get_folder(self.args.model_dir, make_folder=False)
          if not model_dir:
              logger.error("%s does not exist.", self.args.model_dir)
keep keep add keep 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