concrete.ml.quantization.quantized_module.md

arrow-up-right

module concrete.ml.quantization.quantized_module

QuantizedModule API.


arrow-up-right

class QuantizedModule

Inference for a quantized model.

arrow-up-right

method __init__

__init__(
    ordered_module_input_names: Iterable[str] = None,
    ordered_module_output_names: Iterable[str] = None,
    quant_layers_dict: Dict[str, Tuple[Tuple[str, ], QuantizedOp]] = None
)

property fhe_circuit

Get the FHE circuit.

Returns:

  • Circuit: the FHE circuit


property is_compiled

Return the compiled status of the module.

Returns:

  • bool: the compiled status of the module.


property onnx_model

Get the ONNX model.

.. # noqa: DAR201

Returns:

  • _onnx_model (onnx.ModelProto): the ONNX model


property post_processing_params

Get the post-processing parameters.

Returns:

  • Dict[str, Any]: the post-processing parameters


arrow-up-right

method compile

Compile the forward function of the module.

Args:

  • q_inputs (Union[Tuple[numpy.ndarray, ...], numpy.ndarray]): Needed for tracing and building the boundaries.

  • configuration (Optional[Configuration]): Configuration object to use during compilation

  • compilation_artifacts (Optional[DebugArtifacts]): Artifacts object to fill during

  • show_mlir (bool): if set, the MLIR produced by the converter and which is going to be sent to the compiler backend is shown on the screen, e.g., for debugging or demo. Defaults to False.

  • use_virtual_lib (bool): set to use the so called virtual lib simulating FHE computation. Defaults to False.

  • p_error (Optional[float]): probability of error of a single PBS.

  • global_p_error (Optional[float]): probability of error of the full circuit. Not simulated by the VL, i.e., taken as 0

  • verbose_compilation (bool): whether to show compilation information

Returns:

  • Circuit: the compiled Circuit.


arrow-up-right

method dequantize_output

Take the last layer q_out and use its dequant function.

Args:

  • qvalues (numpy.ndarray): Quantized values of the last layer.

Returns:

  • numpy.ndarray: Dequantized values of the last layer.


arrow-up-right

method forward

Forward pass with numpy function only.

Args:

  • *qvalues (numpy.ndarray): numpy.array containing the quantized values.

  • debug (bool): In debug mode, returns quantized intermediary values of the computation. This is useful when a model's intermediary values in Concrete-ML need to be compared with the intermediary values obtained in pytorch/onnx. When set, the second return value is a dictionary containing ONNX operation names as keys and, as values, their input QuantizedArray or ndarray. The use can thus extract the quantized or float values of quantized inputs.

Returns:

  • (numpy.ndarray): Predictions of the quantized model


arrow-up-right

method forward_and_dequant

Forward pass with numpy function only plus dequantization.

Args:

  • *q_x (numpy.ndarray): numpy.ndarray containing the quantized input values. Requires the input dtype to be int64.

Returns:

  • (numpy.ndarray): Predictions of the quantized model


arrow-up-right

method post_processing

Post-processing of the quantized output.

Args:

  • qvalues (numpy.ndarray): numpy.ndarray containing the quantized input values.

Returns:

  • (numpy.ndarray): Predictions of the quantized model


arrow-up-right

method quantize_input

Take the inputs in fp32 and quantize it using the learned quantization parameters.

Args:

  • *values (numpy.ndarray): Floating point values.

Returns:

  • Union[numpy.ndarray, Tuple[numpy.ndarray, ...]]: Quantized (numpy.int64) values.


arrow-up-right

method set_inputs_quantization_parameters

Set the quantization parameters for the module's inputs.

Args:

  • *input_q_params (UniformQuantizer): The quantizer(s) for the module.

Last updated

Was this helpful?