validation.bench_trees

onnx_extended.validation.bench_trees.bench_trees

onnx_extended.validation.bench_trees.bench_trees(max_depth: int = 14, n_estimators: int = 100, n_features: int = 100, batch_size=10000, number: int = 10, warmup: int = 2, verbose: int = 0, engine_names: List[str] | None = None, repeat: int = 2, profile: bool = False) List[Dict[str, Any]][source]

Measures the performances of the different implements of the TreeEnsemble.

Parameters:
  • max_depth – depth of tree

  • n_estimators – number of trees in the forest

  • n_features – number of features

  • batch_size – batch size

  • number – number of calls to measure

  • warmup – number of calls before starting the measure

  • verbose – verbosity

  • engine_names – see below

  • repeat – number of times to repeat the measure

  • profile – run a profiler as well

Returns:

list of observations

Possible choices:

  • onnxruntime: simple onnxruntime.InferenceSession

  • onnxruntime-customop: onnxruntime.InferenceSession with a custom implementation for the trees

  • CReferenceEvaluator: onnx_extended.reference.CReferenceEvaluator

  • cython: cython wrapper for the onnxruntime shared libraries

  • cython-customop: cython wrapper for the onnxruntime shared libraries with a custom implementation for the trees

onnx_extended.validation.bench_trees.create_decision_tree

onnx_extended.validation.bench_trees.create_decision_tree(n_features: int = 100, max_depth: int = 14) ModelProto[source]

onnx_extended.validation.bench_trees.create_engine

onnx_extended.validation.bench_trees.create_engine(name: str, onx: ModelProto, feeds: Dict[str, ndarray]) Engine[source]

Creates engines to benchmark a random forest.

Parameters:
  • name – name of the engine, see below

  • onx – the model

  • feeds – the inputs

Returns:

an instance of Engine

Possible choices:

  • onnxruntime: simple onnxruntime.InferenceSession

  • onnxruntime-customop: onnxruntime.InferenceSession with a custom implementation for the trees

  • CReferenceEvaluator: onnx_extended.reference.CReferenceEvaluator

  • cython: cython wrapper for the onnxruntime shared libraries

  • cython-customop: cython wrapper for the onnxruntime shared libraries with a custom implementation for the trees

onnx_extended.validation.bench_trees.Engine

class onnx_extended.validation.bench_trees.Engine(name: str, sess: Any)[source]

Implements a common interface to the different ways to run the inference.

onnx_extended.validation.bench_trees.EngineCython

class onnx_extended.validation.bench_trees.EngineCython(name: str, sess: Any)[source]

Same interface as InferenceSession but for OrtSession.