concrete.ml.sklearn.tree_to_numpy
Implements the conversion of a tree model to a numpy function.
MAX_BITWIDTH_BACKWARD_COMPATIBLE
OPSET_VERSION_FOR_ONNX_EXPORT
MSB_TO_KEEP_FOR_TREES
MIN_CIRCUIT_THRESHOLD_FOR_TREES
get_onnx_model
Create ONNX model with Hummingbird convert method.
Args:
model
(Callable): The tree model to convert.
x
(numpy.ndarray): Dataset used to trace the tree inference and convert the model to ONNX.
framework
(str): The framework from which the ONNX model is generated.
(options
: 'xgboost', 'sklearn')
Returns:
onnx.ModelProto
: The ONNX model.
workaround_squeeze_node_xgboost
Workaround to fix torch issue that does not export the proper axis in the ONNX squeeze node.
FIXME: https://github.com/zama-ai/concrete-ml-internal/issues/2778 The squeeze ops does not have the proper dimensions. remove the following workaround when the issue is fixed Add the axis attribute to the Squeeze node
Args:
onnx_model
(onnx.ModelProto): The ONNX model.
assert_add_node_and_constant_in_xgboost_regressor_graph
Assert if an Add node with a specific constant exists in the ONNX graph.
Args:
onnx_model
(onnx.ModelProto): The ONNX model.
add_transpose_after_last_node
Add transpose after last node.
Args:
onnx_model
(onnx.ModelProto): The ONNX model.
preprocess_tree_predictions
Apply post-processing from the graph.
Args:
init_tensor
(numpy.ndarray): Model parameters to be pre-processed.
output_n_bits
(int): The number of bits of the output.
Returns:
QuantizedArray
: Quantizer for the tree predictions.
tree_onnx_graph_preprocessing
Apply pre-processing onto the ONNX graph.
Args:
onnx_model
(onnx.ModelProto): The ONNX model.
framework
(str): The framework from which the ONNX model is generated.
(options
: 'xgboost', 'sklearn')
expected_number_of_outputs
(int): The expected number of outputs in the ONNX model.
tree_values_preprocessing
Pre-process tree values.
Args:
onnx_model
(onnx.ModelProto): The ONNX model.
framework
(str): The framework from which the ONNX model is generated.
(options
: 'xgboost', 'sklearn')
output_n_bits
(int): The number of bits of the output.
Returns:
QuantizedArray
: Quantizer for the tree predictions.
tree_to_numpy
Convert the tree inference to a numpy functions using Hummingbird.
Args:
model
(Callable): The tree model to convert.
x
(numpy.ndarray): The input data.
use_rounding
(bool): This parameter is exclusively used to tree-based models. It determines whether the rounding feature is enabled or disabled.
framework
(str): The framework from which the ONNX model is generated.
(options
: 'xgboost', 'sklearn')
output_n_bits
(int): The number of bits of the output. Default to 8.
Returns:
Tuple[Callable, List[QuantizedArray], onnx.ModelProto]
: A tuple with a function that takes a numpy array and returns a numpy array, QuantizedArray object to quantize and de-quantize the output of the tree, and the ONNX model.