from sklearn_benchmarks.reporting.hp_match import HpMatchReporting
from sklearn_benchmarks.utils import default_results_directory
from pathlib import Path
import pandas as pd
pd.set_option('display.max_colwidth', None)
pd.set_option('display.max_columns', None)
pd.set_option('display.max_rows', None)
results_dir = default_results_directory()
# Parameters
results_dir = "./results/local/20220314T110428/"
results_dir = Path(results_dir)
reporting = HpMatchReporting(other_library="onnx", config="config.yml", log_scale=True, results_dir=results_dir)
reporting.make_report()
We assume here there is a perfect match between the hyperparameters of both librairies. For a given set of parameters and a given dataset, we compute the speed-up
time scikit-learn / time onnx. For instance, a speed-up of 2 means that onnx is twice as fast as scikit-learn for a given set of parameters and a given dataset.
onnx (1.11.0) vs. scikit-learn (1.0.2)
All estimators share the following parameters: algorithm=brute.
predict
| function | n_samples_train | n_samples | n_features | mean_duration_sklearn | std_duration_sklearn | iteration_throughput | latency | n_jobs | n_neighbors | accuracy_score_sklearn | mean_duration_onnx | std_duration_onnx | accuracy_score_onnx | speedup | std_speedup | sklearn_profiling | onnx_profiling | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | predict | 100000 | 1000 | 100 | 2.589 | 0.291 | 0.000 | 0.003 | -1 | 1 | 0.676 | 17.875 | 0.043 | 0.676 | 0.145 | 0.145 | Download | Download |
| 1 | predict | 100000 | 1 | 100 | 0.026 | 0.003 | 0.000 | 0.026 | -1 | 1 | 0.000 | 0.334 | 0.003 | 0.000 | 0.076 | 0.076 | Download | Download |
| 2 | predict | 100000 | 1000 | 100 | 3.098 | 0.034 | 0.000 | 0.003 | -1 | 5 | 0.743 | 17.873 | 0.019 | 0.743 | 0.173 | 0.173 | Download | Download |
| 3 | predict | 100000 | 1 | 100 | 0.026 | 0.002 | 0.000 | 0.026 | -1 | 5 | 1.000 | 0.335 | 0.004 | 1.000 | 0.076 | 0.076 | Download | Download |
| 4 | predict | 100000 | 1000 | 100 | 2.160 | 0.006 | 0.000 | 0.002 | 1 | 100 | 0.846 | 17.902 | 0.045 | 0.846 | 0.121 | 0.121 | Download | Download |
| 5 | predict | 100000 | 1 | 100 | 0.022 | 0.000 | 0.000 | 0.022 | 1 | 100 | 1.000 | 0.336 | 0.004 | 1.000 | 0.067 | 0.067 | Download | Download |
| 6 | predict | 100000 | 1000 | 100 | 2.976 | 0.066 | 0.000 | 0.003 | -1 | 100 | 0.846 | 17.949 | 0.094 | 0.846 | 0.166 | 0.166 | Download | Download |
| 7 | predict | 100000 | 1 | 100 | 0.026 | 0.001 | 0.000 | 0.026 | -1 | 100 | 1.000 | 0.338 | 0.002 | 1.000 | 0.076 | 0.076 | Download | Download |
| 8 | predict | 100000 | 1000 | 100 | 2.166 | 0.013 | 0.000 | 0.002 | 1 | 5 | 0.743 | 17.974 | 0.051 | 0.743 | 0.120 | 0.120 | Download | Download |
| 9 | predict | 100000 | 1 | 100 | 0.022 | 0.000 | 0.000 | 0.022 | 1 | 5 | 1.000 | 0.334 | 0.005 | 1.000 | 0.067 | 0.067 | Download | Download |
| 10 | predict | 100000 | 1000 | 100 | 1.297 | 0.007 | 0.001 | 0.001 | 1 | 1 | 0.676 | 17.935 | 0.035 | 0.676 | 0.072 | 0.072 | Download | Download |
| 11 | predict | 100000 | 1 | 100 | 0.025 | 0.006 | 0.000 | 0.025 | 1 | 1 | 0.000 | 0.336 | 0.004 | 0.000 | 0.074 | 0.074 | Download | Download |
| 12 | predict | 100000 | 1000 | 2 | 1.846 | 0.023 | 0.000 | 0.002 | -1 | 1 | 0.845 | 4.291 | 0.007 | 0.845 | 0.430 | 0.430 | Download | Download |
| 13 | predict | 100000 | 1 | 2 | 0.005 | 0.001 | 0.000 | 0.005 | -1 | 1 | 1.000 | 0.259 | 0.005 | 1.000 | 0.018 | 0.018 | Download | Download |
| 14 | predict | 100000 | 1000 | 2 | 2.791 | 0.065 | 0.000 | 0.003 | -1 | 5 | 0.883 | 4.240 | 0.012 | 0.883 | 0.658 | 0.658 | Download | Download |
| 15 | predict | 100000 | 1 | 2 | 0.007 | 0.003 | 0.000 | 0.007 | -1 | 5 | 1.000 | 0.256 | 0.002 | 1.000 | 0.026 | 0.026 | Download | Download |
| 16 | predict | 100000 | 1000 | 2 | 2.113 | 0.009 | 0.000 | 0.002 | 1 | 100 | 0.887 | 4.306 | 0.012 | 0.887 | 0.491 | 0.491 | Download | Download |
| 17 | predict | 100000 | 1 | 2 | 0.003 | 0.000 | 0.000 | 0.003 | 1 | 100 | 1.000 | 0.256 | 0.003 | 1.000 | 0.012 | 0.012 | Download | Download |
| 18 | predict | 100000 | 1000 | 2 | 2.798 | 0.037 | 0.000 | 0.003 | -1 | 100 | 0.887 | 4.306 | 0.006 | 0.887 | 0.650 | 0.650 | Download | Download |
| 19 | predict | 100000 | 1 | 2 | 0.007 | 0.004 | 0.000 | 0.007 | -1 | 100 | 1.000 | 0.256 | 0.004 | 1.000 | 0.028 | 0.028 | Download | Download |
| 20 | predict | 100000 | 1000 | 2 | 2.112 | 0.023 | 0.000 | 0.002 | 1 | 5 | 0.883 | 4.259 | 0.015 | 0.883 | 0.496 | 0.496 | Download | Download |
| 21 | predict | 100000 | 1 | 2 | 0.003 | 0.000 | 0.000 | 0.003 | 1 | 5 | 1.000 | 0.253 | 0.003 | 1.000 | 0.013 | 0.013 | Download | Download |
| 22 | predict | 100000 | 1000 | 2 | 1.199 | 0.016 | 0.000 | 0.001 | 1 | 1 | 0.845 | 4.326 | 0.017 | 0.845 | 0.277 | 0.277 | Download | Download |
| 23 | predict | 100000 | 1 | 2 | 0.003 | 0.001 | 0.000 | 0.003 | 1 | 1 | 1.000 | 0.254 | 0.002 | 1.000 | 0.010 | 0.010 | Download | Download |
onnx (1.11.0) vs. scikit-learn (1.0.2)
All estimators share the following parameters: learning_rate=0.01, n_iter_no_change=10.0, max_leaf_nodes=100.0, max_bins=255.0, min_samples_leaf=100.0, max_iter=300.0.
predict
| function | n_samples_train | n_samples | n_features | mean_duration_sklearn | std_duration_sklearn | iteration_throughput | latency | accuracy_score_sklearn | mean_duration_onnx | std_duration_onnx | accuracy_score_onnx | speedup | std_speedup | sklearn_profiling | onnx_profiling | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | predict | 100000 | 1000 | 100 | 0.137 | 0.005 | 0.006 | 0.0 | 0.795 | 0.586 | 0.006 | 0.795 | 0.233 | 0.233 | Download | Download |
| python | 3.8.12 | packaged by conda-forge | (default, Jan 30 2022, 23:42:07) [GCC 9.4.0] |
|---|---|
| executable | /usr/share/miniconda/envs/sklbench/bin/python |
| machine | Linux-5.11.0-1028-azure-x86_64-with-glibc2.10 |
| version | |
|---|---|
| pip | 22.0.4 |
| setuptools | 60.9.3 |
| sklearn | 1.0.2 |
| numpy | 1.22.3 |
| scipy | 1.8.0 |
| Cython | None |
| pandas | 1.4.1 |
| matplotlib | 3.5.1 |
| joblib | 1.1.0 |
| threadpoolctl | 3.1.0 |
| user_api | internal_api | prefix | filepath | version | threading_layer | architecture | num_threads | |
|---|---|---|---|---|---|---|---|---|
| 0 | blas | openblas | libopenblas | /usr/share/miniconda/envs/sklbench/lib/libopenblasp-r0.3.18.so | 0.3.18 | pthreads | SkylakeX | 2 |
| 1 | openmp | openmp | libgomp | /usr/share/miniconda/envs/sklbench/lib/libgomp.so.1.0.0 | None | NaN | NaN | 2 |
| cpu_count | 2 |
|---|---|
| physical_cpu_count | 2 |