## Quick Tour Each model in the SparseZoo has a specific stub that identifies it. The stubs are made up of the following structure: `DOMAIN/SUB_DOMAIN/ARCHITECTURE{-SUB_ARCHITECTURE}/FRAMEWORK/REPO/DATASET{-TRAINING_SCHEME}/SPARSE_NAME-SPARSE_CATEGORY-{SPARSE_TARGET}` The properties within each model stub are defined as the following: | Model Property | Definition | Examples | |:----------------:|:----------------------------------------------------------------------------------------------:|:----------------------------------------------------------------------------------:| | DOMAIN | The type of solution the model is architected and trained for | cv, nlp | | SUB_DOMAIN | The sub type of solution the model is architected and trained for | classification, segmentation | | ARCHITECTURE | The name of the guiding setup for the network's graph | resnet_v1, mobilenet_v1 | | SUB_ARCHITECTURE | (optional) The scaled version of the architecture such as width or depth | 50, 101, 152 | | FRAMEWORK | The machine learning framework the model was defined and trained in | pytorch, tensorflow_v1 | | REPO | The model repository the model and baseline weights originated from | sparseml, torchvision | | DATASET | The dataset the model was trained on | imagenet, cifar10 | | TRAINING_SCHEME | (optional) A description on how the model was trained | augmented, lower_lr | | SPARSE_NAME | An overview of what was done to sparsify the model | base, pruned, quant (quantized), pruned_quant, arch (architecture modified) | | SPARSE_CATEGORY | Descriptor on the degree to which the model is sparsified as compared with the baseline metric | none, conservative (100% baseline), moderate (>= 99% baseline), aggressive (< 99%) | | SPARSE_TARGET | (optional) Descriptor for the target environment the model was sparsified for | disk, edge, deepsparse, gpu | The contents of each model are made up of the following: - model.md: The model card containing metadata, descriptions, and information for the model. - model.onnx: The [ONNX](https://onnx.ai/) representation of the model's graph. - model.onnx.tar.gz: A compressed format for the ONNX file. Currently ONNX does not support sparse tensors and quantized sparse tensors well for compression. - [FRAMEWORK]/model.[EXTENSION]: The native ML framework file(s) for the model in which it was originally trained. Such as PyTorch, Keras, TensorFlow V1 - recipes/original.[md|yaml]: The original sparsification recipe used to create the model. - recipes/[NAME].[md|yaml]: Additional sparsification recipes that can be used with the model such as transfer learning. - sample-originals: The original sample data without any preprocessing for use with the model. - sample-inputs: The sample data after pre processing for use with the model. - sample-outputs: The outputs after running the sample inputs through the model. - sample-labels: The labels that classify the sample inputs. ### Python APIS The Python APIs respect this format enabling you to search and download models. Some code examples are given below. #### Searching the Zoo ```python from sparsezoo import Zoo models = Zoo.search_models(domain="cv", sub_domain="classification") print(models) ``` #### Common Models ```python from sparsezoo.models.classification import resnet_50 model = resnet_50() model.download() print(model.onnx_file.downloaded_path()) ``` #### Searching Sparse Versions ```python from sparsezoo import Zoo from sparsezoo.models.classification import resnet_50 search_model = resnet_50() sparse_models = Zoo.search_sparse_models(search_model) print(sparse_models) ``` ### Console Scripts In addition to the Python APIs, a console script entry point is installed with the package `sparsezoo`. This enables easy interaction straight from your console/terminal. Note, for some environments the console scripts cannot install properly. If this happens for your system and the sparsezoo command is not available, `https://github.com/neuralmagic/sparsezoo/blob/main/scripts/sparsezoo.py` may be used in its place. ```shell script sparsezoo -h ``` #### Searching Search command help ```shell script sparsezoo search -h ```
Searching for all classification models in the computer vision domain ```shell script sparsezoo search --domain cv --sub-domain classification \ --architecture resnet_v1 --sub-architecture 50 ```
Searching for all ResNet-50 models ```shell script sparsezoo search --domain cv --sub-domain classification ``` #### Downloading Download command help ```shell script sparsezoo download -h ```
Download ResNet-50 Model ```shell script sparsezoo download --domain cv --sub-domain classification \ --architecture resnet_v1 --sub-architecture 50 \ --framework pytorch --repo sparseml --dataset imagenet \ --sparse-name base --sparse-category none ```
Download pruned and quantized ResNet-50 Model ```shell script sparsezoo download --domain cv --sub-domain classification \ --architecture resnet_v1 --sub-architecture 50 \ --framework pytorch --repo sparseml \ --dataset imagenet --training-scheme augmented \ --sparse-name pruned_quant --sparse-category aggressive ```