def load_recipe( domain: str, sub_domain: str, architecture: str, sub_architecture: Union[str, None], framework: str, repo: str, dataset: str, training_scheme: Union[str, None], sparse_name: str, sparse_category: str, sparse_target: Union[str, None], recipe_type: Union[str, None] = None, release_version: Union[str, None] = None, override_folder_name: Union[str, None] = None, override_parent_path: Union[str, None] = None, force_token_refresh: bool = False, ) -> "Recipe": """ Obtains a Recipe from the model repo :param domain: The domain of the model the object belongs to; e.g. cv, nlp :param sub_domain: The sub domain of the model the object belongs to; e.g. classification, segmentation :param architecture: The architecture of the model the object belongs to; e.g. resnet_v1, mobilenet_v1 :param sub_architecture: The sub architecture (scaling factor) of the model the object belongs to; e.g. 50, 101, 152 :param framework: The framework the model the object belongs to was trained on; e.g. pytorch, tensorflow :param repo: The source repo for the model the object belongs to; e.g. sparseml, torchvision :param dataset: The dataset the model the object belongs to was trained on; e.g. imagenet, cifar10 :param training_scheme: The training scheme used on the model the object belongs to if any; e.g. augmented :param sparse_name: The name describing the sparsification of the model the object belongs to, e.g. base, pruned, pruned_quant :param sparse_category: The degree of sparsification of the model the object belongs to; e.g. none, conservative (~100% baseline metric), moderate (>=99% baseline metric), aggressive (<99% baseline metric) :param sparse_target: The deployment target of sparsification of the model the object belongs to; e.g. edge, deepsparse, deepsparse_throughput, gpu :param recipe_type: The recipe type; e.g. original, transfer_learn :param release_version: The sparsezoo release version for the model :param override_folder_name: Override for the name of the folder to save this file under :param override_parent_path: Path to override the default save path for where to save the parent folder for this file under :param force_token_refresh: True to refresh the auth token, False otherwise :return: The requested Recipe instance """ args = ModelArgs( domain=domain, sub_domain=sub_domain, architecture=architecture, sub_architecture=sub_architecture, framework=framework, repo=repo, dataset=dataset, training_scheme=training_scheme, sparse_name=sparse_name, sparse_category=sparse_category, sparse_target=sparse_target, release_version=release_version, ) _LOGGER.debug("load_recipe: loading recipe") return Recipe.load_recipe_from_stub( args, recipe_type=recipe_type, override_folder_name=override_folder_name, override_parent_path=override_parent_path, force_token_refresh=force_token_refresh, )
def search_models( domain: str, sub_domain: str, architecture: Union[str, None] = None, sub_architecture: Union[str, None] = None, framework: Union[str, None] = None, repo: Union[str, None] = None, dataset: Union[str, None] = None, training_scheme: Union[str, None] = None, sparse_name: Union[str, None] = None, sparse_category: Union[str, None] = None, sparse_target: Union[str, None] = None, release_version: Union[str, None] = None, page: int = 1, page_length: int = 20, override_folder_name: Union[str, None] = None, override_parent_path: Union[str, None] = None, force_token_refresh: bool = False, ) -> List["Model"]: """ Obtains a list of Models matching the search parameters :param domain: The domain of the model the object belongs to; e.g. cv, nlp :param sub_domain: The sub domain of the model the object belongs to; e.g. classification, segmentation :param architecture: The architecture of the model the object belongs to; e.g. resnet_v1, mobilenet_v1 :param sub_architecture: The sub architecture (scaling factor) of the model the object belongs to; e.g. 50, 101, 152 :param framework: The framework the model the object belongs to was trained on; e.g. pytorch, tensorflow :param repo: The source repo for the model the object belongs to; e.g. sparseml, torchvision :param dataset: The dataset the model the object belongs to was trained on; e.g. imagenet, cifar10 :param training_scheme: The training scheme used on the model the object belongs to if any; e.g. augmented :param sparse_name: The name describing the sparsification of the model the object belongs to, e.g. base, pruned, pruned_quant :param sparse_category: The degree of sparsification of the model the object belongs to; e.g. none, conservative (~100% baseline metric), moderate (>=99% baseline metric), aggressive (<99% baseline metric) :param sparse_target: The deployment target of sparsification of the model the object belongs to; e.g. edge, deepsparse, deepsparse_throughput, gpu :param release_version: The sparsezoo release version for the model :param page: the page of values to get :param page_length: the page length of values to get :param override_folder_name: Override for the name of the folder to save this file under :param override_parent_path: Path to override the default save path for where to save the parent folder for this file under :param force_token_refresh: True to refresh the auth token, False otherwise :return: The requested Model instance """ args = ModelArgs( domain=domain, sub_domain=sub_domain, architecture=architecture, sub_architecture=sub_architecture, framework=framework, repo=repo, dataset=dataset, training_scheme=training_scheme, sparse_name=sparse_name, sparse_category=sparse_category, sparse_target=sparse_target, release_version=release_version, ) _LOGGER.debug( f"search_models: searching models with args {args.model_url_args}") response_json = search_model_get_request( args=args, page=page, page_length=page_length, force_token_refresh=force_token_refresh, ) return [ Model( **model, override_folder_name=override_folder_name, override_parent_path=override_parent_path, ) for model in response_json["models"] ]