def use_release(self, gpus=1): """Use the latest DeepForest model release from github and load model. Optionally download if release doesn't exist. Returns: model (object): A trained keras model gpus: number of gpus to parallelize, default to 1 """ # Download latest model from github release release_tag, self.weights = utilities.use_release() # load saved model and tag release self.__release_version__ = release_tag print("Loading pre-built model: {}".format(release_tag)) if gpus == 1: with warnings.catch_warnings(): # Suppress compilte warning, not relevant here warnings.filterwarnings("ignore", category=UserWarning) self.model = utilities.read_model(self.weights, self.config) # Convert model self.prediction_model = convert_model(self.model) elif gpus > 1: backbone = models.backbone(self.config["backbone"]) n_classes = len(self.labels.keys()) self.model, self.training_model, self.prediction_model = create_models( backbone.retinanet, num_classes=n_classes, weights=self.weights, multi_gpu=gpus) # add to config self.config["weights"] = self.weights
def __init__(self, weights=None): self.weights = weights #Read config file self.config = utilities.read_config() #Load model weights if needed if self.weights is not None: self.model = utilities.read_model(self.weights, self.config) else: self.model = None
def use_release(self): '''Use the latest DeepForest model release from github and load model. Optionally download if release doesn't exist Returns: model (object): A trained keras model ''' #Download latest model from github release weight_path = utilities.use_release() #load weights self.weights = weight_path self.model = utilities.read_model(self.weights, self.config)