:py:mod:`neural_compressor.experimental.export`
===============================================

.. py:module:: neural_compressor.experimental.export

.. autoapi-nested-parse::

   Intel Neural Compressor Export.



Submodules
----------
.. toctree::
   :titlesonly:
   :maxdepth: 1

   qlinear2qdq/index.rst
   torch2onnx/index.rst
   utils/index.rst


Package Contents
----------------


Functions
~~~~~~~~~

.. autoapisummary::

   neural_compressor.experimental.export.torch_to_fp32_onnx
   neural_compressor.experimental.export.torch_to_int8_onnx
   neural_compressor.experimental.export.onnx_qlinear_to_qdq



.. py:function:: torch_to_fp32_onnx(fp32_model, save_path, example_inputs, opset_version=14, dynamic_axes={'input': {0: 'batch_size'}, 'output': {0: 'batch_size'}}, input_names=None, output_names=None, do_constant_folding=True, verbose=True)

   Export FP32 PyTorch model into FP32 ONNX model.

   :param fp32_model: fp32 model.
   :type fp32_model: torch.nn.module
   :param int8_model: int8 model.
   :type int8_model: torch.nn.module
   :param save_path: save path of ONNX model.
   :type save_path: str
   :param example_inputs: used to trace torch model.
   :type example_inputs: dict|list|tuple|torch.Tensor
   :param opset_version: opset version. Defaults to 14.
   :type opset_version: int, optional
   :param dynamic_axes: dynamic axes. Defaults to {"input": {0: "batch_size"},
                        "output": {0: "batch_size"}}.
   :type dynamic_axes: dict, optional
   :param input_names: input names. Defaults to None.
   :type input_names: list, optional
   :param output_names: output names. Defaults to None.
   :type output_names: list, optional
   :param do_constant_folding: do constant folding or not. Defaults to True.
   :type do_constant_folding: bool, optional
   :param verbose: dump verbose or not. Defaults to True.
   :type verbose: bool, optional


.. py:function:: torch_to_int8_onnx(fp32_model, int8_model, q_config, save_path, example_inputs, opset_version: int = 14, dynamic_axes: dict = {'input': {0: 'batch_size'}, 'output': {0: 'batch_size'}}, input_names=None, output_names=None, quant_format: str = 'QDQ', dtype: str = 'U8S8', recipe: str = 'QDQ_OP_FP32_BIAS')

   Export INT8 PyTorch model into INT8 ONNX model.

   :param fp32_model: fp32 model.
   :type fp32_model: torch.nn.module
   :param int8_model: int8 model.
   :type int8_model: torch.nn.module
   :param q_config: containing quantization configuration.
   :type q_config: dict
   :param save_path: save path of ONNX model.
   :type save_path: str
   :param example_inputs: used to trace torch model.
   :type example_inputs: dict|list|tuple|torch.Tensor
   :param opset_version: opset version. Defaults to 14.
   :type opset_version: int, optional
   :param dynamic_axes: dynamic axes. Defaults to {"input": {0: "batch_size"},
                        "output": {0: "batch_size"}}.
   :type dynamic_axes: dict, optional
   :param input_names: input names. Defaults to None.
   :type input_names: list, optional
   :param output_names: output names. Defaults to None.
   :type output_names: list, optional
   :param quant_format: quantization format of ONNX model. Defaults to 'QDQ'.
   :type quant_format: str, optional
   :param dtype: data types of activation and weight of ONNX model. Defaults to 'U8S8'.
   :type dtype: str, optional
   :param recipe: Recipe for processing nn.quantized.Linear module.
                  'QDQ_OP_FP32_BIAS': inserting QDQ before quantizable op and using fp32 bias.
                  'QDQ_OP_INT32_BIAS': inserting QDQ before quantizable op and using int32 bias.
                  'QDQ_OP_FP32_BIAS_QDQ': inserting QDQ before and after quantizable op and using fp32 bias.
                  Defaults to 'QDQ_OP_FP32_BIAS'.
   :type recipe: str, optionl


.. py:function:: onnx_qlinear_to_qdq(model, input_name_to_nodes)

   Export ONNX QLinearops model into QDQ model.

   :param model: int8 onnx model.
   :type model: ModelProto
   :param input_name_to_nodes: the mapping of tensor name and its destination nodes.
   :type input_name_to_nodes: dict