neural_compressor¶
Intel® Neural Compressor: An open-source Python library supporting popular model compression techniques.
Subpackages¶
neural_compressor.algorithmneural_compressor.contribneural_compressor.dataneural_compressor.data.datasetsneural_compressor.data.datasets.bert_datasetneural_compressor.data.datasets.coco_datasetneural_compressor.data.datasets.datasetneural_compressor.data.datasets.dummy_datasetneural_compressor.data.datasets.dummy_dataset_v2neural_compressor.data.datasets.imagenet_datasetneural_compressor.data.datasets.style_transfer_dataset
neural_compressor.data.filtersneural_compressor.data.transforms
neural_compressor.experimentalneural_compressor.experimental.commonneural_compressor.experimental.common.criterionneural_compressor.experimental.common.dataloaderneural_compressor.experimental.common.metricneural_compressor.experimental.common.modelneural_compressor.experimental.common.optimizerneural_compressor.experimental.common.postprocessneural_compressor.experimental.common.torch_utils
neural_compressor.experimental.dataneural_compressor.experimental.exportneural_compressor.experimental.metricneural_compressor.experimental.metric.bleuneural_compressor.experimental.metric.bleu_utilneural_compressor.experimental.metric.coco_label_mapneural_compressor.experimental.metric.coco_toolsneural_compressor.experimental.metric.evaluate_squadneural_compressor.experimental.metric.f1neural_compressor.experimental.metric.metric
neural_compressor.experimental.nasneural_compressor.experimental.pruning_recipesneural_compressor.experimental.pytorch_prunerneural_compressor.experimental.pytorch_pruner.loggerneural_compressor.experimental.pytorch_pruner.patternsneural_compressor.experimental.pytorch_pruner.prune_utilsneural_compressor.experimental.pytorch_pruner.prunerneural_compressor.experimental.pytorch_pruner.pruningneural_compressor.experimental.pytorch_pruner.scheduler
neural_compressor.experimental.benchmarkneural_compressor.experimental.componentneural_compressor.experimental.distillationneural_compressor.experimental.graph_optimizationneural_compressor.experimental.mixed_precisionneural_compressor.experimental.model_conversionneural_compressor.experimental.pruningneural_compressor.experimental.pruning_v2neural_compressor.experimental.quantizationneural_compressor.experimental.scheduler
neural_compressor.metricneural_compressor.modelneural_compressor.prunerneural_compressor.pruner.pruner_legacyneural_compressor.pruner.criterianeural_compressor.pruner.loggerneural_compressor.pruner.patternsneural_compressor.pruner.prunersneural_compressor.pruner.pruningneural_compressor.pruner.regsneural_compressor.pruner.schedulersneural_compressor.pruner.utils
neural_compressor.strategyneural_compressor.strategy.utilsneural_compressor.strategy.auto_mixed_precisionneural_compressor.strategy.basicneural_compressor.strategy.bayesianneural_compressor.strategy.conservativeneural_compressor.strategy.exhaustiveneural_compressor.strategy.hawq_v2neural_compressor.strategy.mseneural_compressor.strategy.mse_v2neural_compressor.strategy.randomneural_compressor.strategy.strategy
neural_compressor.utilsneural_compressor.utils.collect_layer_histogramneural_compressor.utils.constantneural_compressor.utils.create_obj_from_configneural_compressor.utils.kl_divergenceneural_compressor.utils.load_huggingfaceneural_compressor.utils.loggerneural_compressor.utils.optionsneural_compressor.utils.pytorchneural_compressor.utils.utility
neural_compressor.uxneural_compressor.ux.componentsneural_compressor.ux.components.benchmarkneural_compressor.ux.components.config_generatorneural_compressor.ux.components.configuration_wizardneural_compressor.ux.components.db_managerneural_compressor.ux.components.diagnosisneural_compressor.ux.components.file_browserneural_compressor.ux.components.graphneural_compressor.ux.components.jobs_managementneural_compressor.ux.components.modelneural_compressor.ux.components.model_zooneural_compressor.ux.components.names_mapperneural_compressor.ux.components.optimizationneural_compressor.ux.components.profilingneural_compressor.ux.components.manage_workspace
neural_compressor.ux.utilsneural_compressor.ux.utils.templatesneural_compressor.ux.utils.workloadneural_compressor.ux.utils.constsneural_compressor.ux.utils.environmentneural_compressor.ux.utils.exceptionsneural_compressor.ux.utils.executorneural_compressor.ux.utils.expiring_dictneural_compressor.ux.utils.github_infoneural_compressor.ux.utils.hw_infoneural_compressor.ux.utils.json_serializerneural_compressor.ux.utils.loggerneural_compressor.ux.utils.parserneural_compressor.ux.utils.procneural_compressor.ux.utils.processesneural_compressor.ux.utils.singletonneural_compressor.ux.utils.status_updatesneural_compressor.ux.utils.utilsneural_compressor.ux.utils.yaml_utils
neural_compressor.ux.webneural_compressor.ux.inc_bench
Submodules¶
Package Contents¶
Classes¶
Benchmark class can be used to evaluate the model performance. |
|
Config of distillation. |
|
Config Class for Post Training Quantization. |
|
Similiar to torch optimizer's interface. |
|
Config Class for Quantization Aware Training. |
Functions¶
|
Set the random seed in config. |
|
Set the tensorboard in config. |
|
Set the workspace in config. |
- class neural_compressor.Benchmark(conf_fname_or_obj)¶
Bases:
objectBenchmark class can be used to evaluate the model performance.
With the objective setting, user can get the data of what they configured in yaml.
- Parameters:
conf_fname_or_obj (string or obj) – The path to the YAML configuration file or Benchmark_Conf class containing accuracy goal, tuning objective and preferred calibration & quantization tuning space etc.
- dataloader(dataset, batch_size=1, collate_fn=None, last_batch='rollover', sampler=None, batch_sampler=None, num_workers=0, pin_memory=False, shuffle=False, distributed=False)¶
Set dataloader for benchmarking.
- metric(name, metric_cls, **kwargs)¶
Set the metric class and Neural Compressor will initialize this class when evaluation.
Neural Compressor has many built-in metrics, but users can set specific metrics through this api. The metric class should take the outputs of the model or postprocess (if have) as inputs. Neural Compressor built-in metrics always take (predictions, labels) as inputs for update, and user_metric.metric_cls should be a sub_class of neural_compressor.metric.metric or an user-defined metric object
- Parameters:
metric_cls (cls) – Should be a sub_class of neural_compressor.metric.BaseMetric, which takes (predictions, labels) as inputs
name (str, optional) – Name for metric. Defaults to ‘user_metric’.
- postprocess(name, postprocess_cls, **kwargs)¶
Set postprocess class and neural_compressor will initialize this class when evaluation.
The postprocess function should take the outputs of the model as inputs, and outputs (predictions, labels) as inputs for metric updates.
Args: name (str, optional): Name for postprocess. postprocess_cls (cls): Should be a sub_class of neural_compressor.data.transforms.postprocess.
- neural_compressor.set_random_seed(seed: int)¶
Set the random seed in config.
- neural_compressor.set_tensorboard(tensorboard: bool)¶
Set the tensorboard in config.
- neural_compressor.set_workspace(workspace: str)¶
Set the workspace in config.
- class neural_compressor.DistillationConfig(teacher_model=None, criterion=criterion, optimizer={'SGD': {'learning_rate': 0.0001}})¶
Config of distillation.
- Parameters:
teacher_model (Callable) – Teacher model for distillation. Defaults to None.
features (optional) – Teacher features for distillation, features and teacher_model are alternative. Defaults to None.
criterion (Callable, optional) – Distillation loss configure.
optimizer (dictionary, optional) – Optimizer configure.
- property criterion¶
Get criterion.
- property optimizer¶
Get optimizer.
- property teacher_model¶
Get teacher_model.
- class neural_compressor.PostTrainingQuantConfig(device='cpu', backend='default', quant_format='default', inputs=[], outputs=[], approach='static', calibration_sampling_size=[100], op_type_list=None, op_name_list=None, reduce_range=None, excluded_precisions=[], quant_level=1, tuning_criterion=tuning_criterion, accuracy_criterion=accuracy_criterion)¶
Bases:
_BaseQuantizationConfigConfig Class for Post Training Quantization.
- property approach¶
Get approach.
- property tuning_criterion¶
Get tuning_criterion.
- class neural_compressor.WeightPruningConfig(pruning_configs=[{}], target_sparsity=0.9, pruning_type='snip_momentum', pattern='4x1', op_names=[], excluded_op_names=[], start_step=0, end_step=0, pruning_scope='global', pruning_frequency=1, min_sparsity_ratio_per_op=0.0, max_sparsity_ratio_per_op=0.98, sparsity_decay_type='exp', pruning_op_types=['Conv', 'Linear'], **kwargs)¶
Similiar to torch optimizer’s interface.
- property weight_compression¶
Get weight_compression.
- class neural_compressor.QuantizationAwareTrainingConfig(device='cpu', backend='default', inputs=[], outputs=[], op_type_list=None, op_name_list=None, reduce_range=None, excluded_precisions=[], quant_level=1)¶
Bases:
_BaseQuantizationConfigConfig Class for Quantization Aware Training.
- property approach¶
Get approach.