Note
Go to the end to download the full example code.
What is the opset number?¶
Every library is versioned. scikit-learn may change the implementation of a specific model. That happens for example with the SVC model where the parameter break_ties was added in 0.22. ONNX does also have a version called opset number. Operator ArgMin was added in opset 1 and changed in opset 11, 12, 13. Sometimes, it is updated to extend the list of types it supports, sometimes, it moves a parameter into the input list. The runtime used to deploy the model does not implement a new version, in that case, a model must be converted by usually using the most recent opset supported by the runtime, we call that opset the targeted opset. An ONNX graph only contains one unique opset, every node must be described following the specifications defined by the latest opset below the targeted opset.
This example considers an IsolationForest and digs into opsets.
Data¶
A simple example.
from onnx.defs import onnx_opset_version
from skl2onnx import to_onnx
import numpy
import matplotlib.pyplot as plt
from sklearn.ensemble import IsolationForest
from sklearn.datasets import make_blobs
X, y = make_blobs(n_samples=100, n_features=2)
model = IsolationForest(n_estimators=3)
model.fit(X)
labels = model.predict(X)
fig, ax = plt.subplots(1, 1)
for k in (-1, 1):
ax.plot(X[labels == k, 0], X[labels == k, 1], "o", label="cl%d" % k)
ax.set_title("Sample")
ONNX¶
onx = to_onnx(
model, X[:1].astype(numpy.float32), target_opset={"": 15, "ai.onnx.ml": 2}
)
print(onx)
ir_version: 8
producer_name: "skl2onnx"
producer_version: "1.18.0"
domain: "ai.onnx"
model_version: 0
doc_string: ""
graph {
node {
input: "X"
input: "node_sample0_Gathercst"
output: "node_sample0_output0"
name: "node_sample0_Gather"
op_type: "Gather"
attribute {
name: "axis"
i: 1
type: INT
}
domain: ""
}
node {
input: "X"
input: "node_sample0_Gathercst"
output: "node_sample1_output0"
name: "node_sample1_Gather"
op_type: "Gather"
attribute {
name: "axis"
i: 1
type: INT
}
domain: ""
}
node {
input: "X"
input: "node_sample0_Gathercst"
output: "node_sample2_output0"
name: "node_sample2_Gather"
op_type: "Gather"
attribute {
name: "axis"
i: 1
type: INT
}
domain: ""
}
node {
input: "node_sample0_output0"
output: "node_sample0_Y0"
name: "node_sample0_TreeEnsembleRegressor"
op_type: "TreeEnsembleRegressor"
attribute {
name: "n_targets"
i: 1
type: INT
}
attribute {
name: "nodes_falsenodeids"
ints: 56
ints: 31
ints: 26
ints: 11
ints: 8
ints: 7
ints: 0
ints: 0
ints: 10
ints: 0
ints: 0
ints: 19
ints: 16
ints: 15
ints: 0
ints: 0
ints: 18
ints: 0
ints: 0
ints: 23
ints: 22
ints: 0
ints: 0
ints: 25
ints: 0
ints: 0
ints: 28
ints: 0
ints: 30
ints: 0
ints: 0
ints: 55
ints: 40
ints: 35
ints: 0
ints: 37
ints: 0
ints: 39
ints: 0
ints: 0
ints: 48
ints: 45
ints: 44
ints: 0
ints: 0
ints: 47
ints: 0
ints: 0
ints: 52
ints: 51
ints: 0
ints: 0
ints: 54
ints: 0
ints: 0
ints: 0
ints: 62
ints: 59
ints: 0
ints: 61
ints: 0
ints: 0
ints: 88
ints: 75
ints: 70
ints: 67
ints: 0
ints: 69
ints: 0
ints: 0
ints: 74
ints: 73
ints: 0
ints: 0
ints: 0
ints: 81
ints: 80
ints: 79
ints: 0
ints: 0
ints: 0
ints: 85
ints: 84
ints: 0
ints: 0
ints: 87
ints: 0
ints: 0
ints: 92
ints: 91
ints: 0
ints: 0
ints: 98
ints: 97
ints: 96
ints: 0
ints: 0
ints: 0
ints: 0
type: INTS
}
attribute {
name: "nodes_featureids"
ints: 1
ints: 0
ints: 1
ints: 0
ints: 0
ints: 1
ints: 0
ints: 0
ints: 1
ints: 0
ints: 0
ints: 0
ints: 1
ints: 1
ints: 0
ints: 0
ints: 1
ints: 0
ints: 0
ints: 1
ints: 1
ints: 0
ints: 0
ints: 1
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 1
ints: 1
ints: 0
ints: 1
ints: 0
ints: 0
ints: 0
ints: 0
ints: 1
ints: 1
ints: 1
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 1
ints: 0
ints: 0
ints: 0
ints: 0
ints: 1
ints: 0
ints: 1
ints: 1
ints: 0
ints: 1
ints: 0
ints: 0
ints: 0
ints: 1
ints: 0
ints: 0
ints: 0
ints: 1
ints: 1
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 1
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 1
ints: 0
ints: 0
ints: 0
ints: 1
ints: 1
ints: 1
ints: 0
ints: 0
ints: 0
ints: 0
type: INTS
}
attribute {
name: "nodes_hitrates"
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
type: FLOATS
}
attribute {
name: "nodes_missing_value_tracks_true"
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
type: INTS
}
attribute {
name: "nodes_modes"
strings: "BRANCH_LEQ"
strings: "BRANCH_LEQ"
strings: "BRANCH_LEQ"
strings: "BRANCH_LEQ"
strings: "BRANCH_LEQ"
strings: "BRANCH_LEQ"
strings: "LEAF"
strings: "LEAF"
strings: "BRANCH_LEQ"
strings: "LEAF"
strings: "LEAF"
strings: "BRANCH_LEQ"
strings: "BRANCH_LEQ"
strings: "BRANCH_LEQ"
strings: "LEAF"
strings: "LEAF"
strings: "BRANCH_LEQ"
strings: "LEAF"
strings: "LEAF"
strings: "BRANCH_LEQ"
strings: "BRANCH_LEQ"
strings: "LEAF"
strings: "LEAF"
strings: "BRANCH_LEQ"
strings: "LEAF"
strings: "LEAF"
strings: "BRANCH_LEQ"
strings: "LEAF"
strings: "BRANCH_LEQ"
strings: "LEAF"
strings: "LEAF"
strings: "BRANCH_LEQ"
strings: "BRANCH_LEQ"
strings: "BRANCH_LEQ"
strings: "LEAF"
strings: "BRANCH_LEQ"
strings: "LEAF"
strings: "BRANCH_LEQ"
strings: "LEAF"
strings: "LEAF"
strings: "BRANCH_LEQ"
strings: "BRANCH_LEQ"
strings: "BRANCH_LEQ"
strings: "LEAF"
strings: "LEAF"
strings: "BRANCH_LEQ"
strings: "LEAF"
strings: "LEAF"
strings: "BRANCH_LEQ"
strings: "BRANCH_LEQ"
strings: "LEAF"
strings: "LEAF"
strings: "BRANCH_LEQ"
strings: "LEAF"
strings: "LEAF"
strings: "LEAF"
strings: "BRANCH_LEQ"
strings: "BRANCH_LEQ"
strings: "LEAF"
strings: "BRANCH_LEQ"
strings: "LEAF"
strings: "LEAF"
strings: "BRANCH_LEQ"
strings: "BRANCH_LEQ"
strings: "BRANCH_LEQ"
strings: "BRANCH_LEQ"
strings: "LEAF"
strings: "BRANCH_LEQ"
strings: "LEAF"
strings: "LEAF"
strings: "BRANCH_LEQ"
strings: "BRANCH_LEQ"
strings: "LEAF"
strings: "LEAF"
strings: "LEAF"
strings: "BRANCH_LEQ"
strings: "BRANCH_LEQ"
strings: "BRANCH_LEQ"
strings: "LEAF"
strings: "LEAF"
strings: "LEAF"
strings: "BRANCH_LEQ"
strings: "BRANCH_LEQ"
strings: "LEAF"
strings: "LEAF"
strings: "BRANCH_LEQ"
strings: "LEAF"
strings: "LEAF"
strings: "BRANCH_LEQ"
strings: "BRANCH_LEQ"
strings: "LEAF"
strings: "LEAF"
strings: "BRANCH_LEQ"
strings: "BRANCH_LEQ"
strings: "BRANCH_LEQ"
strings: "LEAF"
strings: "LEAF"
strings: "LEAF"
strings: "LEAF"
type: STRINGS
}
attribute {
name: "nodes_nodeids"
ints: 0
ints: 1
ints: 2
ints: 3
ints: 4
ints: 5
ints: 6
ints: 7
ints: 8
ints: 9
ints: 10
ints: 11
ints: 12
ints: 13
ints: 14
ints: 15
ints: 16
ints: 17
ints: 18
ints: 19
ints: 20
ints: 21
ints: 22
ints: 23
ints: 24
ints: 25
ints: 26
ints: 27
ints: 28
ints: 29
ints: 30
ints: 31
ints: 32
ints: 33
ints: 34
ints: 35
ints: 36
ints: 37
ints: 38
ints: 39
ints: 40
ints: 41
ints: 42
ints: 43
ints: 44
ints: 45
ints: 46
ints: 47
ints: 48
ints: 49
ints: 50
ints: 51
ints: 52
ints: 53
ints: 54
ints: 55
ints: 56
ints: 57
ints: 58
ints: 59
ints: 60
ints: 61
ints: 62
ints: 63
ints: 64
ints: 65
ints: 66
ints: 67
ints: 68
ints: 69
ints: 70
ints: 71
ints: 72
ints: 73
ints: 74
ints: 75
ints: 76
ints: 77
ints: 78
ints: 79
ints: 80
ints: 81
ints: 82
ints: 83
ints: 84
ints: 85
ints: 86
ints: 87
ints: 88
ints: 89
ints: 90
ints: 91
ints: 92
ints: 93
ints: 94
ints: 95
ints: 96
ints: 97
ints: 98
type: INTS
}
attribute {
name: "nodes_treeids"
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
type: INTS
}
attribute {
name: "nodes_truenodeids"
ints: 1
ints: 2
ints: 3
ints: 4
ints: 5
ints: 6
ints: 0
ints: 0
ints: 9
ints: 0
ints: 0
ints: 12
ints: 13
ints: 14
ints: 0
ints: 0
ints: 17
ints: 0
ints: 0
ints: 20
ints: 21
ints: 0
ints: 0
ints: 24
ints: 0
ints: 0
ints: 27
ints: 0
ints: 29
ints: 0
ints: 0
ints: 32
ints: 33
ints: 34
ints: 0
ints: 36
ints: 0
ints: 38
ints: 0
ints: 0
ints: 41
ints: 42
ints: 43
ints: 0
ints: 0
ints: 46
ints: 0
ints: 0
ints: 49
ints: 50
ints: 0
ints: 0
ints: 53
ints: 0
ints: 0
ints: 0
ints: 57
ints: 58
ints: 0
ints: 60
ints: 0
ints: 0
ints: 63
ints: 64
ints: 65
ints: 66
ints: 0
ints: 68
ints: 0
ints: 0
ints: 71
ints: 72
ints: 0
ints: 0
ints: 0
ints: 76
ints: 77
ints: 78
ints: 0
ints: 0
ints: 0
ints: 82
ints: 83
ints: 0
ints: 0
ints: 86
ints: 0
ints: 0
ints: 89
ints: 90
ints: 0
ints: 0
ints: 93
ints: 94
ints: 95
ints: 0
ints: 0
ints: 0
ints: 0
type: INTS
}
attribute {
name: "nodes_values"
floats: 2.71322227
floats: 1.03907096
floats: -4.18209648
floats: -3.5346272
floats: -3.83864307
floats: -5.56761122
floats: 0
floats: 0
floats: -4.26642227
floats: 0
floats: 0
floats: -1.95087612
floats: -4.71015692
floats: -5.37310076
floats: 0
floats: 0
floats: -4.61523771
floats: 0
floats: 0
floats: -5.78396
floats: -6.71628666
floats: 0
floats: 0
floats: -5.47960949
floats: 0
floats: 0
floats: -3.93837905
floats: 0
floats: -1.65389729
floats: 0
floats: 0
floats: 8.10906315
floats: -4.55496264
floats: -6.38563442
floats: 0
floats: -5.19657
floats: 0
floats: 7.30478334
floats: 0
floats: 0
floats: -3.21892309
floats: -3.67675185
floats: -4.42827749
floats: 0
floats: 0
floats: 5.24977255
floats: 0
floats: 0
floats: 6.48864412
floats: 6.15042925
floats: 0
floats: 0
floats: 7.20358706
floats: 0
floats: 0
floats: 0
floats: 7.31717682
floats: 5.47103405
floats: 0
floats: 7.02973223
floats: 0
floats: 0
floats: 6.55216742
floats: 9.5009861
floats: 5.81129169
floats: 4.40493965
floats: 0
floats: 4.89769173
floats: 0
floats: 0
floats: 8.99491119
floats: 6.41850281
floats: 0
floats: 0
floats: 0
floats: 5.87745523
floats: 5.26500607
floats: 10.7930603
floats: 0
floats: 0
floats: 0
floats: 10.2665377
floats: 6.05230236
floats: 0
floats: 0
floats: 10.8009777
floats: 0
floats: 0
floats: 6.69080067
floats: 9.14468575
floats: 0
floats: 0
floats: 7.25322294
floats: 7.00766134
floats: 6.98903799
floats: 0
floats: 0
floats: 0
floats: 0
type: FLOATS
}
attribute {
name: "post_transform"
s: "NONE"
type: STRING
}
attribute {
name: "target_ids"
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
type: INTS
}
attribute {
name: "target_nodeids"
ints: 6
ints: 7
ints: 9
ints: 10
ints: 14
ints: 15
ints: 17
ints: 18
ints: 21
ints: 22
ints: 24
ints: 25
ints: 27
ints: 29
ints: 30
ints: 34
ints: 36
ints: 38
ints: 39
ints: 43
ints: 44
ints: 46
ints: 47
ints: 50
ints: 51
ints: 53
ints: 54
ints: 55
ints: 58
ints: 60
ints: 61
ints: 66
ints: 68
ints: 69
ints: 72
ints: 73
ints: 74
ints: 78
ints: 79
ints: 80
ints: 83
ints: 84
ints: 86
ints: 87
ints: 90
ints: 91
ints: 95
ints: 96
ints: 97
ints: 98
type: INTS
}
attribute {
name: "target_treeids"
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
type: INTS
}
attribute {
name: "target_weights"
floats: 6
floats: 7
floats: 9
floats: 10
floats: 14
floats: 15
floats: 17
floats: 18
floats: 21
floats: 22
floats: 24
floats: 25
floats: 27
floats: 29
floats: 30
floats: 34
floats: 36
floats: 38
floats: 39
floats: 43
floats: 44
floats: 46
floats: 47
floats: 50
floats: 51
floats: 53
floats: 54
floats: 55
floats: 58
floats: 60
floats: 61
floats: 66
floats: 68
floats: 69
floats: 72
floats: 73
floats: 74
floats: 78
floats: 79
floats: 80
floats: 83
floats: 84
floats: 86
floats: 87
floats: 90
floats: 91
floats: 95
floats: 96
floats: 97
floats: 98
type: FLOATS
}
domain: "ai.onnx.ml"
}
node {
input: "node_sample0_Y0"
output: "node_sample0_output02"
name: "node_sample0_Cast"
op_type: "Cast"
attribute {
name: "to"
i: 7
type: INT
}
domain: ""
}
node {
input: "node_sample0_Y0"
output: "path_length0_output0"
name: "path_length0_Cast"
op_type: "Cast"
attribute {
name: "to"
i: 7
type: INT
}
domain: ""
}
node {
input: "node_sample1_output0"
output: "node_sample1_Y0"
name: "node_sample1_TreeEnsembleRegressor"
op_type: "TreeEnsembleRegressor"
attribute {
name: "n_targets"
i: 1
type: INT
}
attribute {
name: "nodes_falsenodeids"
ints: 48
ints: 15
ints: 6
ints: 5
ints: 0
ints: 0
ints: 14
ints: 11
ints: 10
ints: 0
ints: 0
ints: 13
ints: 0
ints: 0
ints: 0
ints: 37
ints: 26
ints: 23
ints: 22
ints: 21
ints: 0
ints: 0
ints: 0
ints: 25
ints: 0
ints: 0
ints: 34
ints: 31
ints: 30
ints: 0
ints: 0
ints: 33
ints: 0
ints: 0
ints: 36
ints: 0
ints: 0
ints: 39
ints: 0
ints: 45
ints: 44
ints: 43
ints: 0
ints: 0
ints: 0
ints: 47
ints: 0
ints: 0
ints: 62
ints: 61
ints: 60
ints: 53
ints: 0
ints: 57
ints: 56
ints: 0
ints: 0
ints: 59
ints: 0
ints: 0
ints: 0
ints: 0
ints: 70
ints: 67
ints: 66
ints: 0
ints: 0
ints: 69
ints: 0
ints: 0
ints: 84
ints: 77
ints: 76
ints: 75
ints: 0
ints: 0
ints: 0
ints: 81
ints: 80
ints: 0
ints: 0
ints: 83
ints: 0
ints: 0
ints: 0
type: INTS
}
attribute {
name: "nodes_featureids"
ints: 0
ints: 1
ints: 0
ints: 1
ints: 0
ints: 0
ints: 0
ints: 1
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 1
ints: 0
ints: 0
ints: 0
ints: 0
ints: 1
ints: 0
ints: 0
ints: 0
ints: 0
ints: 1
ints: 0
ints: 0
ints: 1
ints: 0
ints: 0
ints: 1
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 1
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 1
ints: 1
ints: 1
ints: 0
ints: 0
ints: 0
ints: 1
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 1
ints: 0
ints: 0
ints: 0
ints: 1
ints: 0
ints: 0
ints: 1
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
type: INTS
}
attribute {
name: "nodes_hitrates"
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
type: FLOATS
}
attribute {
name: "nodes_missing_value_tracks_true"
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
type: INTS
}
attribute {
name: "nodes_modes"
strings: "BRANCH_LEQ"
strings: "BRANCH_LEQ"
strings: "BRANCH_LEQ"
strings: "BRANCH_LEQ"
strings: "LEAF"
strings: "LEAF"
strings: "BRANCH_LEQ"
strings: "BRANCH_LEQ"
strings: "BRANCH_LEQ"
strings: "LEAF"
strings: "LEAF"
strings: "BRANCH_LEQ"
strings: "LEAF"
strings: "LEAF"
strings: "LEAF"
strings: "BRANCH_LEQ"
strings: "BRANCH_LEQ"
strings: "BRANCH_LEQ"
strings: "BRANCH_LEQ"
strings: "BRANCH_LEQ"
strings: "LEAF"
strings: "LEAF"
strings: "LEAF"
strings: "BRANCH_LEQ"
strings: "LEAF"
strings: "LEAF"
strings: "BRANCH_LEQ"
strings: "BRANCH_LEQ"
strings: "BRANCH_LEQ"
strings: "LEAF"
strings: "LEAF"
strings: "BRANCH_LEQ"
strings: "LEAF"
strings: "LEAF"
strings: "BRANCH_LEQ"
strings: "LEAF"
strings: "LEAF"
strings: "BRANCH_LEQ"
strings: "LEAF"
strings: "BRANCH_LEQ"
strings: "BRANCH_LEQ"
strings: "BRANCH_LEQ"
strings: "LEAF"
strings: "LEAF"
strings: "LEAF"
strings: "BRANCH_LEQ"
strings: "LEAF"
strings: "LEAF"
strings: "BRANCH_LEQ"
strings: "BRANCH_LEQ"
strings: "BRANCH_LEQ"
strings: "BRANCH_LEQ"
strings: "LEAF"
strings: "BRANCH_LEQ"
strings: "BRANCH_LEQ"
strings: "LEAF"
strings: "LEAF"
strings: "BRANCH_LEQ"
strings: "LEAF"
strings: "LEAF"
strings: "LEAF"
strings: "LEAF"
strings: "BRANCH_LEQ"
strings: "BRANCH_LEQ"
strings: "BRANCH_LEQ"
strings: "LEAF"
strings: "LEAF"
strings: "BRANCH_LEQ"
strings: "LEAF"
strings: "LEAF"
strings: "BRANCH_LEQ"
strings: "BRANCH_LEQ"
strings: "BRANCH_LEQ"
strings: "BRANCH_LEQ"
strings: "LEAF"
strings: "LEAF"
strings: "LEAF"
strings: "BRANCH_LEQ"
strings: "BRANCH_LEQ"
strings: "LEAF"
strings: "LEAF"
strings: "BRANCH_LEQ"
strings: "LEAF"
strings: "LEAF"
strings: "LEAF"
type: STRINGS
}
attribute {
name: "nodes_nodeids"
ints: 0
ints: 1
ints: 2
ints: 3
ints: 4
ints: 5
ints: 6
ints: 7
ints: 8
ints: 9
ints: 10
ints: 11
ints: 12
ints: 13
ints: 14
ints: 15
ints: 16
ints: 17
ints: 18
ints: 19
ints: 20
ints: 21
ints: 22
ints: 23
ints: 24
ints: 25
ints: 26
ints: 27
ints: 28
ints: 29
ints: 30
ints: 31
ints: 32
ints: 33
ints: 34
ints: 35
ints: 36
ints: 37
ints: 38
ints: 39
ints: 40
ints: 41
ints: 42
ints: 43
ints: 44
ints: 45
ints: 46
ints: 47
ints: 48
ints: 49
ints: 50
ints: 51
ints: 52
ints: 53
ints: 54
ints: 55
ints: 56
ints: 57
ints: 58
ints: 59
ints: 60
ints: 61
ints: 62
ints: 63
ints: 64
ints: 65
ints: 66
ints: 67
ints: 68
ints: 69
ints: 70
ints: 71
ints: 72
ints: 73
ints: 74
ints: 75
ints: 76
ints: 77
ints: 78
ints: 79
ints: 80
ints: 81
ints: 82
ints: 83
ints: 84
type: INTS
}
attribute {
name: "nodes_treeids"
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
type: INTS
}
attribute {
name: "nodes_truenodeids"
ints: 1
ints: 2
ints: 3
ints: 4
ints: 0
ints: 0
ints: 7
ints: 8
ints: 9
ints: 0
ints: 0
ints: 12
ints: 0
ints: 0
ints: 0
ints: 16
ints: 17
ints: 18
ints: 19
ints: 20
ints: 0
ints: 0
ints: 0
ints: 24
ints: 0
ints: 0
ints: 27
ints: 28
ints: 29
ints: 0
ints: 0
ints: 32
ints: 0
ints: 0
ints: 35
ints: 0
ints: 0
ints: 38
ints: 0
ints: 40
ints: 41
ints: 42
ints: 0
ints: 0
ints: 0
ints: 46
ints: 0
ints: 0
ints: 49
ints: 50
ints: 51
ints: 52
ints: 0
ints: 54
ints: 55
ints: 0
ints: 0
ints: 58
ints: 0
ints: 0
ints: 0
ints: 0
ints: 63
ints: 64
ints: 65
ints: 0
ints: 0
ints: 68
ints: 0
ints: 0
ints: 71
ints: 72
ints: 73
ints: 74
ints: 0
ints: 0
ints: 0
ints: 78
ints: 79
ints: 0
ints: 0
ints: 82
ints: 0
ints: 0
ints: 0
type: INTS
}
attribute {
name: "nodes_values"
floats: -0.00189737475
floats: -6.72443199
floats: -2.99551105
floats: -6.96214581
floats: 0
floats: 0
floats: -0.98436594
floats: -7.46575165
floats: -2.26513195
floats: 0
floats: 0
floats: -2.53663731
floats: 0
floats: 0
floats: 0
floats: -1.83991909
floats: -3.25844979
floats: -3.44922
floats: -4.16725397
floats: -3.81657362
floats: 0
floats: 0
floats: 0
floats: -5.26258659
floats: 0
floats: 0
floats: -1.98751342
floats: -2.5949719
floats: -4.45225239
floats: 0
floats: 0
floats: -6.18131924
floats: 0
floats: 0
floats: -5.19938135
floats: 0
floats: 0
floats: -1.76028526
floats: 0
floats: -1.21635449
floats: -1.31103992
floats: -3.62792015
floats: 0
floats: 0
floats: 0
floats: -0.923936367
floats: 0
floats: 0
floats: 3.87805319
floats: 2.98039031
floats: -2.51134205
floats: 4.61813164
floats: 0
floats: 5.40448189
floats: -3.40265656
floats: 0
floats: 0
floats: 6.78415918
floats: 0
floats: 0
floats: 0
floats: 0
floats: 7.48344469
floats: 6.28721619
floats: 6.97653913
floats: 0
floats: 0
floats: 6.46694
floats: 0
floats: 0
floats: 7.14360476
floats: 8.25683
floats: 8.07404137
floats: 7.67820549
floats: 0
floats: 0
floats: 0
floats: 10.4134054
floats: 9.2918787
floats: 0
floats: 0
floats: 11.2974024
floats: 0
floats: 0
floats: 0
type: FLOATS
}
attribute {
name: "post_transform"
s: "NONE"
type: STRING
}
attribute {
name: "target_ids"
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
type: INTS
}
attribute {
name: "target_nodeids"
ints: 4
ints: 5
ints: 9
ints: 10
ints: 12
ints: 13
ints: 14
ints: 20
ints: 21
ints: 22
ints: 24
ints: 25
ints: 29
ints: 30
ints: 32
ints: 33
ints: 35
ints: 36
ints: 38
ints: 42
ints: 43
ints: 44
ints: 46
ints: 47
ints: 52
ints: 55
ints: 56
ints: 58
ints: 59
ints: 60
ints: 61
ints: 65
ints: 66
ints: 68
ints: 69
ints: 74
ints: 75
ints: 76
ints: 79
ints: 80
ints: 82
ints: 83
ints: 84
type: INTS
}
attribute {
name: "target_treeids"
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
type: INTS
}
attribute {
name: "target_weights"
floats: 4
floats: 5
floats: 9
floats: 10
floats: 12
floats: 13
floats: 14
floats: 20
floats: 21
floats: 22
floats: 24
floats: 25
floats: 29
floats: 30
floats: 32
floats: 33
floats: 35
floats: 36
floats: 38
floats: 42
floats: 43
floats: 44
floats: 46
floats: 47
floats: 52
floats: 55
floats: 56
floats: 58
floats: 59
floats: 60
floats: 61
floats: 65
floats: 66
floats: 68
floats: 69
floats: 74
floats: 75
floats: 76
floats: 79
floats: 80
floats: 82
floats: 83
floats: 84
type: FLOATS
}
domain: "ai.onnx.ml"
}
node {
input: "node_sample2_output0"
output: "node_sample2_Y0"
name: "node_sample2_TreeEnsembleRegressor"
op_type: "TreeEnsembleRegressor"
attribute {
name: "n_targets"
i: 1
type: INT
}
attribute {
name: "nodes_falsenodeids"
ints: 6
ints: 5
ints: 4
ints: 0
ints: 0
ints: 0
ints: 14
ints: 13
ints: 10
ints: 0
ints: 12
ints: 0
ints: 0
ints: 0
ints: 18
ints: 17
ints: 0
ints: 0
ints: 32
ints: 25
ints: 24
ints: 23
ints: 0
ints: 0
ints: 0
ints: 29
ints: 28
ints: 0
ints: 0
ints: 31
ints: 0
ints: 0
ints: 40
ints: 37
ints: 36
ints: 0
ints: 0
ints: 39
ints: 0
ints: 0
ints: 42
ints: 0
ints: 0
type: INTS
}
attribute {
name: "nodes_featureids"
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 1
ints: 0
ints: 1
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 1
ints: 0
ints: 0
ints: 0
ints: 1
ints: 0
ints: 0
ints: 1
ints: 0
ints: 0
ints: 0
ints: 0
ints: 1
ints: 0
ints: 0
ints: 1
ints: 0
ints: 0
ints: 0
ints: 1
ints: 1
ints: 0
ints: 0
ints: 1
ints: 0
ints: 0
ints: 1
ints: 0
ints: 0
type: INTS
}
attribute {
name: "nodes_hitrates"
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
type: FLOATS
}
attribute {
name: "nodes_missing_value_tracks_true"
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
type: INTS
}
attribute {
name: "nodes_modes"
strings: "BRANCH_LEQ"
strings: "BRANCH_LEQ"
strings: "BRANCH_LEQ"
strings: "LEAF"
strings: "LEAF"
strings: "LEAF"
strings: "BRANCH_LEQ"
strings: "BRANCH_LEQ"
strings: "BRANCH_LEQ"
strings: "LEAF"
strings: "BRANCH_LEQ"
strings: "LEAF"
strings: "LEAF"
strings: "LEAF"
strings: "BRANCH_LEQ"
strings: "BRANCH_LEQ"
strings: "LEAF"
strings: "LEAF"
strings: "BRANCH_LEQ"
strings: "BRANCH_LEQ"
strings: "BRANCH_LEQ"
strings: "BRANCH_LEQ"
strings: "LEAF"
strings: "LEAF"
strings: "LEAF"
strings: "BRANCH_LEQ"
strings: "BRANCH_LEQ"
strings: "LEAF"
strings: "LEAF"
strings: "BRANCH_LEQ"
strings: "LEAF"
strings: "LEAF"
strings: "BRANCH_LEQ"
strings: "BRANCH_LEQ"
strings: "BRANCH_LEQ"
strings: "LEAF"
strings: "LEAF"
strings: "BRANCH_LEQ"
strings: "LEAF"
strings: "LEAF"
strings: "BRANCH_LEQ"
strings: "LEAF"
strings: "LEAF"
type: STRINGS
}
attribute {
name: "nodes_nodeids"
ints: 0
ints: 1
ints: 2
ints: 3
ints: 4
ints: 5
ints: 6
ints: 7
ints: 8
ints: 9
ints: 10
ints: 11
ints: 12
ints: 13
ints: 14
ints: 15
ints: 16
ints: 17
ints: 18
ints: 19
ints: 20
ints: 21
ints: 22
ints: 23
ints: 24
ints: 25
ints: 26
ints: 27
ints: 28
ints: 29
ints: 30
ints: 31
ints: 32
ints: 33
ints: 34
ints: 35
ints: 36
ints: 37
ints: 38
ints: 39
ints: 40
ints: 41
ints: 42
type: INTS
}
attribute {
name: "nodes_treeids"
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
type: INTS
}
attribute {
name: "nodes_truenodeids"
ints: 1
ints: 2
ints: 3
ints: 0
ints: 0
ints: 0
ints: 7
ints: 8
ints: 9
ints: 0
ints: 11
ints: 0
ints: 0
ints: 0
ints: 15
ints: 16
ints: 0
ints: 0
ints: 19
ints: 20
ints: 21
ints: 22
ints: 0
ints: 0
ints: 0
ints: 26
ints: 27
ints: 0
ints: 0
ints: 30
ints: 0
ints: 0
ints: 33
ints: 34
ints: 35
ints: 0
ints: 0
ints: 38
ints: 0
ints: 0
ints: 41
ints: 0
ints: 0
type: INTS
}
attribute {
name: "nodes_values"
floats: -3.99814153
floats: -4.30216312
floats: -4.42691326
floats: 0
floats: 0
floats: 0
floats: -6.90890932
floats: -2.23926091
floats: -7.51920843
floats: 0
floats: -3.17204237
floats: 0
floats: 0
floats: 0
floats: -6.63599539
floats: -2.03491879
floats: 0
floats: 0
floats: 0.931200206
floats: 4.53333521
floats: 2.15905
floats: -6.23600483
floats: 0
floats: 0
floats: 0
floats: 6.61726952
floats: -2.50484395
floats: 0
floats: 0
floats: -3.28250146
floats: 0
floats: 0
floats: 11.1687851
floats: 4.66552639
floats: 4.4671979
floats: 0
floats: 0
floats: 6.76898813
floats: 0
floats: 0
floats: 4.67077875
floats: 0
floats: 0
type: FLOATS
}
attribute {
name: "post_transform"
s: "NONE"
type: STRING
}
attribute {
name: "target_ids"
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
type: INTS
}
attribute {
name: "target_nodeids"
ints: 3
ints: 4
ints: 5
ints: 9
ints: 11
ints: 12
ints: 13
ints: 16
ints: 17
ints: 22
ints: 23
ints: 24
ints: 27
ints: 28
ints: 30
ints: 31
ints: 35
ints: 36
ints: 38
ints: 39
ints: 41
ints: 42
type: INTS
}
attribute {
name: "target_treeids"
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
ints: 0
type: INTS
}
attribute {
name: "target_weights"
floats: 3
floats: 4
floats: 5
floats: 9
floats: 11
floats: 12
floats: 13
floats: 16
floats: 17
floats: 22
floats: 23
floats: 24
floats: 27
floats: 28
floats: 30
floats: 31
floats: 35
floats: 36
floats: 38
floats: 39
floats: 41
floats: 42
type: FLOATS
}
domain: "ai.onnx.ml"
}
node {
input: "node_sample1_Y0"
output: "node_sample1_output02"
name: "node_sample1_Cast"
op_type: "Cast"
attribute {
name: "to"
i: 7
type: INT
}
domain: ""
}
node {
input: "node_sample2_Y0"
output: "node_sample2_output02"
name: "node_sample2_Cast"
op_type: "Cast"
attribute {
name: "to"
i: 7
type: INT
}
domain: ""
}
node {
input: "node_sample1_Y0"
output: "path_length1_output0"
name: "path_length1_Cast"
op_type: "Cast"
attribute {
name: "to"
i: 7
type: INT
}
domain: ""
}
node {
input: "node_sample2_Y0"
output: "path_length2_output0"
name: "path_length2_Cast"
op_type: "Cast"
attribute {
name: "to"
i: 7
type: INT
}
domain: ""
}
node {
input: "node_sample0_output02"
output: "node_sample0_Y02"
name: "node_sample0_LabelEncoder"
op_type: "LabelEncoder"
attribute {
name: "keys_int64s"
ints: 6
ints: 7
ints: 9
ints: 10
ints: 14
ints: 15
ints: 17
ints: 18
ints: 21
ints: 22
ints: 24
ints: 25
ints: 27
ints: 29
ints: 30
ints: 34
ints: 36
ints: 38
ints: 39
ints: 43
ints: 44
ints: 46
ints: 47
ints: 50
ints: 51
ints: 53
ints: 54
ints: 55
ints: 58
ints: 60
ints: 61
ints: 66
ints: 68
ints: 69
ints: 72
ints: 73
ints: 74
ints: 78
ints: 79
ints: 80
ints: 83
ints: 84
ints: 86
ints: 87
ints: 90
ints: 91
ints: 95
ints: 96
ints: 97
ints: 98
type: INTS
}
attribute {
name: "values_floats"
floats: 1
floats: 1
floats: 1
floats: 1
floats: 12
floats: 6
floats: 1
floats: 1
floats: 1
floats: 1
floats: 3
floats: 2
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 8
floats: 2
floats: 1
floats: 8
floats: 2
floats: 3
floats: 2
floats: 1
floats: 2
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 2
floats: 5
floats: 3
floats: 1
floats: 1
floats: 2
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 4
floats: 1
floats: 1
floats: 1
type: FLOATS
}
domain: "ai.onnx.ml"
}
node {
input: "path_length0_output0"
output: "path_length0_Y0"
name: "path_length0_LabelEncoder"
op_type: "LabelEncoder"
attribute {
name: "keys_int64s"
ints: 6
ints: 7
ints: 9
ints: 10
ints: 14
ints: 15
ints: 17
ints: 18
ints: 21
ints: 22
ints: 24
ints: 25
ints: 27
ints: 29
ints: 30
ints: 34
ints: 36
ints: 38
ints: 39
ints: 43
ints: 44
ints: 46
ints: 47
ints: 50
ints: 51
ints: 53
ints: 54
ints: 55
ints: 58
ints: 60
ints: 61
ints: 66
ints: 68
ints: 69
ints: 72
ints: 73
ints: 74
ints: 78
ints: 79
ints: 80
ints: 83
ints: 84
ints: 86
ints: 87
ints: 90
ints: 91
ints: 95
ints: 96
ints: 97
ints: 98
type: INTS
}
attribute {
name: "values_floats"
floats: 7
floats: 7
floats: 7
floats: 7
floats: 8
floats: 8
floats: 8
floats: 8
floats: 8
floats: 8
floats: 8
floats: 8
floats: 5
floats: 6
floats: 6
floats: 6
floats: 7
floats: 8
floats: 8
floats: 8
floats: 8
floats: 8
floats: 8
floats: 8
floats: 8
floats: 8
floats: 8
floats: 4
floats: 4
floats: 5
floats: 5
floats: 7
floats: 8
floats: 8
floats: 8
floats: 8
floats: 7
floats: 8
floats: 8
floats: 7
floats: 8
floats: 8
floats: 8
floats: 8
floats: 6
floats: 6
floats: 8
floats: 8
floats: 7
floats: 6
type: FLOATS
}
domain: "ai.onnx.ml"
}
node {
input: "node_sample1_output02"
output: "node_sample1_Y02"
name: "node_sample1_LabelEncoder"
op_type: "LabelEncoder"
attribute {
name: "keys_int64s"
ints: 4
ints: 5
ints: 9
ints: 10
ints: 12
ints: 13
ints: 14
ints: 20
ints: 21
ints: 22
ints: 24
ints: 25
ints: 29
ints: 30
ints: 32
ints: 33
ints: 35
ints: 36
ints: 38
ints: 42
ints: 43
ints: 44
ints: 46
ints: 47
ints: 52
ints: 55
ints: 56
ints: 58
ints: 59
ints: 60
ints: 61
ints: 65
ints: 66
ints: 68
ints: 69
ints: 74
ints: 75
ints: 76
ints: 79
ints: 80
ints: 82
ints: 83
ints: 84
type: INTS
}
attribute {
name: "values_floats"
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 2
floats: 1
floats: 1
floats: 1
floats: 6
floats: 1
floats: 1
floats: 5
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 16
floats: 13
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 2
floats: 1
floats: 12
floats: 7
floats: 3
floats: 1
floats: 1
type: FLOATS
}
domain: "ai.onnx.ml"
}
node {
input: "node_sample2_output02"
output: "node_sample2_Y02"
name: "node_sample2_LabelEncoder"
op_type: "LabelEncoder"
attribute {
name: "keys_int64s"
ints: 3
ints: 4
ints: 5
ints: 9
ints: 11
ints: 12
ints: 13
ints: 16
ints: 17
ints: 22
ints: 23
ints: 24
ints: 27
ints: 28
ints: 30
ints: 31
ints: 35
ints: 36
ints: 38
ints: 39
ints: 41
ints: 42
type: INTS
}
attribute {
name: "values_floats"
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 1
floats: 2
floats: 23
floats: 1
floats: 17
floats: 1
floats: 11
floats: 3
floats: 2
floats: 1
floats: 22
floats: 6
floats: 1
floats: 1
type: FLOATS
}
domain: "ai.onnx.ml"
}
node {
input: "path_length1_output0"
output: "path_length1_Y0"
name: "path_length1_LabelEncoder"
op_type: "LabelEncoder"
attribute {
name: "keys_int64s"
ints: 4
ints: 5
ints: 9
ints: 10
ints: 12
ints: 13
ints: 14
ints: 20
ints: 21
ints: 22
ints: 24
ints: 25
ints: 29
ints: 30
ints: 32
ints: 33
ints: 35
ints: 36
ints: 38
ints: 42
ints: 43
ints: 44
ints: 46
ints: 47
ints: 52
ints: 55
ints: 56
ints: 58
ints: 59
ints: 60
ints: 61
ints: 65
ints: 66
ints: 68
ints: 69
ints: 74
ints: 75
ints: 76
ints: 79
ints: 80
ints: 82
ints: 83
ints: 84
type: INTS
}
attribute {
name: "values_floats"
floats: 5
floats: 5
floats: 7
floats: 7
floats: 7
floats: 7
floats: 5
floats: 8
floats: 8
floats: 7
floats: 7
floats: 7
floats: 8
floats: 8
floats: 8
floats: 8
floats: 7
floats: 7
floats: 5
floats: 8
floats: 8
floats: 7
floats: 7
floats: 7
floats: 6
floats: 8
floats: 8
floats: 8
floats: 8
floats: 5
floats: 4
floats: 6
floats: 6
floats: 6
floats: 6
floats: 8
floats: 8
floats: 7
floats: 8
floats: 8
floats: 8
floats: 8
floats: 5
type: FLOATS
}
domain: "ai.onnx.ml"
}
node {
input: "path_length2_output0"
output: "path_length2_Y0"
name: "path_length2_LabelEncoder"
op_type: "LabelEncoder"
attribute {
name: "keys_int64s"
ints: 3
ints: 4
ints: 5
ints: 9
ints: 11
ints: 12
ints: 13
ints: 16
ints: 17
ints: 22
ints: 23
ints: 24
ints: 27
ints: 28
ints: 30
ints: 31
ints: 35
ints: 36
ints: 38
ints: 39
ints: 41
ints: 42
type: INTS
}
attribute {
name: "values_floats"
floats: 4
floats: 4
floats: 3
floats: 5
floats: 6
floats: 6
floats: 4
floats: 5
floats: 5
floats: 8
floats: 8
floats: 7
floats: 8
floats: 8
floats: 8
floats: 8
floats: 8
floats: 8
floats: 8
floats: 8
floats: 7
floats: 7
type: FLOATS
}
domain: "ai.onnx.ml"
}
node {
input: "node_sample0_Y02"
input: "path_length0_Reshapecst"
output: "node_sample0_reshaped0"
name: "node_sample0_Reshape"
op_type: "Reshape"
attribute {
name: "allowzero"
i: 0
type: INT
}
domain: ""
}
node {
input: "path_length0_Y0"
input: "path_length0_Reshapecst"
output: "path_length0_reshaped0"
name: "path_length0_Reshape"
op_type: "Reshape"
attribute {
name: "allowzero"
i: 0
type: INT
}
domain: ""
}
node {
input: "node_sample0_reshaped0"
input: "dec_Powcst"
output: "eq2_0_C0"
name: "eq2_0_Equal"
op_type: "Equal"
domain: ""
}
node {
input: "node_sample0_reshaped0"
input: "dec_Powcst"
output: "plus2_0_C0"
name: "plus2_0_Greater"
op_type: "Greater"
domain: ""
}
node {
input: "node_sample1_Y02"
input: "path_length0_Reshapecst"
output: "node_sample1_reshaped0"
name: "node_sample1_Reshape"
op_type: "Reshape"
attribute {
name: "allowzero"
i: 0
type: INT
}
domain: ""
}
node {
input: "node_sample2_Y02"
input: "path_length0_Reshapecst"
output: "node_sample2_reshaped0"
name: "node_sample2_Reshape"
op_type: "Reshape"
attribute {
name: "allowzero"
i: 0
type: INT
}
domain: ""
}
node {
input: "path_length1_Y0"
input: "path_length0_Reshapecst"
output: "path_length1_reshaped0"
name: "path_length1_Reshape"
op_type: "Reshape"
attribute {
name: "allowzero"
i: 0
type: INT
}
domain: ""
}
node {
input: "path_length2_Y0"
input: "path_length0_Reshapecst"
output: "path_length2_reshaped0"
name: "path_length2_Reshape"
op_type: "Reshape"
attribute {
name: "allowzero"
i: 0
type: INT
}
domain: ""
}
node {
input: "eq2_0_C0"
output: "eq2_0_output0"
name: "eq2_0_Cast"
op_type: "Cast"
attribute {
name: "to"
i: 1
type: INT
}
domain: ""
}
node {
input: "plus2_0_C0"
output: "plus2_0_output0"
name: "plus2_0_Cast"
op_type: "Cast"
attribute {
name: "to"
i: 1
type: INT
}
domain: ""
}
node {
input: "node_sample1_reshaped0"
input: "dec_Powcst"
output: "eq2_1_C0"
name: "eq2_1_Equal"
op_type: "Equal"
domain: ""
}
node {
input: "node_sample2_reshaped0"
input: "dec_Powcst"
output: "eq2_2_C0"
name: "eq2_2_Equal"
op_type: "Equal"
domain: ""
}
node {
input: "node_sample1_reshaped0"
input: "dec_Powcst"
output: "plus2_1_C0"
name: "plus2_1_Greater"
op_type: "Greater"
domain: ""
}
node {
input: "node_sample2_reshaped0"
input: "dec_Powcst"
output: "plus2_2_C0"
name: "plus2_2_Greater"
op_type: "Greater"
domain: ""
}
node {
input: "eq2_1_C0"
output: "eq2_1_output0"
name: "eq2_1_Cast"
op_type: "Cast"
attribute {
name: "to"
i: 1
type: INT
}
domain: ""
}
node {
input: "eq2_2_C0"
output: "eq2_2_output0"
name: "eq2_2_Cast"
op_type: "Cast"
attribute {
name: "to"
i: 1
type: INT
}
domain: ""
}
node {
input: "plus2_1_C0"
output: "plus2_1_output0"
name: "plus2_1_Cast"
op_type: "Cast"
attribute {
name: "to"
i: 1
type: INT
}
domain: ""
}
node {
input: "plus2_2_C0"
output: "plus2_2_output0"
name: "plus2_2_Cast"
op_type: "Cast"
attribute {
name: "to"
i: 1
type: INT
}
domain: ""
}
node {
input: "plus2_0_output0"
input: "node_sample0_reshaped0"
output: "eqp2ps0_C0"
name: "eqp2ps0_Mul"
op_type: "Mul"
domain: ""
}
node {
input: "eqp2ps0_C0"
input: "eqp2p_m1_0_Addcst"
output: "eqp2p_m1_0_C0"
name: "eqp2p_m1_0_Add"
op_type: "Add"
domain: ""
}
node {
input: "eqp2ps0_C0"
input: "eqp2p_m1_0_Maxcst"
output: "eqp_ns0_max0"
name: "eqp_ns0_Max"
op_type: "Max"
domain: ""
}
node {
input: "plus2_1_output0"
input: "node_sample1_reshaped0"
output: "eqp2ps1_C0"
name: "eqp2ps1_Mul"
op_type: "Mul"
domain: ""
}
node {
input: "plus2_2_output0"
input: "node_sample2_reshaped0"
output: "eqp2ps2_C0"
name: "eqp2ps2_Mul"
op_type: "Mul"
domain: ""
}
node {
input: "eqp2ps1_C0"
input: "eqp2p_m1_0_Addcst"
output: "eqp2p_m1_1_C0"
name: "eqp2p_m1_1_Add"
op_type: "Add"
domain: ""
}
node {
input: "eqp2ps2_C0"
input: "eqp2p_m1_0_Addcst"
output: "eqp2p_m1_2_C0"
name: "eqp2p_m1_2_Add"
op_type: "Add"
domain: ""
}
node {
input: "eqp2p_m1_0_C0"
input: "eqp2p_m1_0_Maxcst"
output: "eqp2p_m1_0_max0"
name: "eqp2p_m1_0_Max"
op_type: "Max"
domain: ""
}
node {
input: "eqp2p_m1_0_C0"
input: "eqp2p_m1_0_Maxcst1"
output: "eqp2p_m1_0_max02"
name: "eqp2p_m1_0_Max1"
op_type: "Max"
domain: ""
}
node {
input: "eqp2ps1_C0"
input: "eqp2p_m1_0_Maxcst"
output: "eqp_ns1_max0"
name: "eqp_ns1_Max"
op_type: "Max"
domain: ""
}
node {
input: "eqp2ps2_C0"
input: "eqp2p_m1_0_Maxcst"
output: "eqp_ns2_max0"
name: "eqp_ns2_Max"
op_type: "Max"
domain: ""
}
node {
input: "eqp2p_m1_0_max02"
input: "eqp_ns0_max0"
output: "eqp_ns0_C01"
name: "eqp_ns0_Div"
op_type: "Div"
domain: ""
}
node {
input: "eqp2p_m1_0_max0"
output: "eqp_log0_output0"
name: "eqp_log0_Log"
op_type: "Log"
domain: ""
}
node {
input: "eqp2p_m1_1_C0"
input: "eqp2p_m1_0_Maxcst"
output: "eqp2p_m1_1_max0"
name: "eqp2p_m1_1_Max"
op_type: "Max"
domain: ""
}
node {
input: "eqp2p_m1_1_C0"
input: "eqp2p_m1_0_Maxcst1"
output: "eqp2p_m1_1_max02"
name: "eqp2p_m1_1_Max1"
op_type: "Max"
domain: ""
}
node {
input: "eqp2p_m1_2_C0"
input: "eqp2p_m1_0_Maxcst"
output: "eqp2p_m1_2_max0"
name: "eqp2p_m1_2_Max"
op_type: "Max"
domain: ""
}
node {
input: "eqp2p_m1_2_C0"
input: "eqp2p_m1_0_Maxcst1"
output: "eqp2p_m1_2_max02"
name: "eqp2p_m1_2_Max1"
op_type: "Max"
domain: ""
}
node {
input: "eqp_log0_output0"
input: "eqp_log0_Addcst"
output: "eqp_log0_C01"
name: "eqp_log0_Add"
op_type: "Add"
domain: ""
}
node {
input: "eqp2p_m1_1_max02"
input: "eqp_ns1_max0"
output: "eqp_ns1_C01"
name: "eqp_ns1_Div"
op_type: "Div"
domain: ""
}
node {
input: "eqp2p_m1_2_max02"
input: "eqp_ns2_max0"
output: "eqp_ns2_C01"
name: "eqp_ns2_Div"
op_type: "Div"
domain: ""
}
node {
input: "eqp2p_m1_1_max0"
output: "eqp_log1_output0"
name: "eqp_log1_Log"
op_type: "Log"
domain: ""
}
node {
input: "eqp2p_m1_2_max0"
output: "eqp_log2_output0"
name: "eqp_log2_Log"
op_type: "Log"
domain: ""
}
node {
input: "eqp_ns0_C01"
input: "eqp_ns0_Mulcst"
output: "eqp_ns0_C0"
name: "eqp_ns0_Mul"
op_type: "Mul"
domain: ""
}
node {
input: "eqp_log1_output0"
input: "eqp_log0_Addcst"
output: "eqp_log1_C01"
name: "eqp_log1_Add"
op_type: "Add"
domain: ""
}
node {
input: "eqp_log2_output0"
input: "eqp_log0_Addcst"
output: "eqp_log2_C01"
name: "eqp_log2_Add"
op_type: "Add"
domain: ""
}
node {
input: "eqp_log0_C01"
input: "dec_Powcst"
output: "eqp_log0_C0"
name: "eqp_log0_Mul"
op_type: "Mul"
domain: ""
}
node {
input: "eqp_ns1_C01"
input: "eqp_ns0_Mulcst"
output: "eqp_ns1_C0"
name: "eqp_ns1_Mul"
op_type: "Mul"
domain: ""
}
node {
input: "eqp_ns2_C01"
input: "eqp_ns0_Mulcst"
output: "eqp_ns2_C0"
name: "eqp_ns2_Mul"
op_type: "Mul"
domain: ""
}
node {
input: "eqp_log0_C0"
input: "eqp_ns0_C0"
output: "avlog0_C01"
name: "avlog0_Add"
op_type: "Add"
domain: ""
}
node {
input: "eqp_log1_C01"
input: "dec_Powcst"
output: "eqp_log1_C0"
name: "eqp_log1_Mul"
op_type: "Mul"
domain: ""
}
node {
input: "eqp_log2_C01"
input: "dec_Powcst"
output: "eqp_log2_C0"
name: "eqp_log2_Mul"
op_type: "Mul"
domain: ""
}
node {
input: "eqp_log1_C0"
input: "eqp_ns1_C0"
output: "avlog1_C01"
name: "avlog1_Add"
op_type: "Add"
domain: ""
}
node {
input: "eqp_log2_C0"
input: "eqp_ns2_C0"
output: "avlog2_C01"
name: "avlog2_Add"
op_type: "Add"
domain: ""
}
node {
input: "avlog0_C01"
input: "plus2_0_output0"
output: "avlog0_C0"
name: "avlog0_Mul"
op_type: "Mul"
domain: ""
}
node {
input: "eq2_0_output0"
input: "avlog0_C0"
output: "avpl0_C0"
name: "avpl0_Add"
op_type: "Add"
domain: ""
}
node {
input: "avlog1_C01"
input: "plus2_1_output0"
output: "avlog1_C0"
name: "avlog1_Mul"
op_type: "Mul"
domain: ""
}
node {
input: "avlog2_C01"
input: "plus2_2_output0"
output: "avlog2_C0"
name: "avlog2_Mul"
op_type: "Mul"
domain: ""
}
node {
input: "eq2_1_output0"
input: "avlog1_C0"
output: "avpl1_C0"
name: "avpl1_Add"
op_type: "Add"
domain: ""
}
node {
input: "eq2_2_output0"
input: "avlog2_C0"
output: "avpl2_C0"
name: "avpl2_Add"
op_type: "Add"
domain: ""
}
node {
input: "path_length0_reshaped0"
input: "avpl0_C0"
output: "depth0_C01"
name: "depth0_Add"
op_type: "Add"
domain: ""
}
node {
input: "depth0_C01"
input: "eqp2p_m1_0_Addcst"
output: "depth0_C0"
name: "depth0_Add1"
op_type: "Add"
domain: ""
}
node {
input: "path_length1_reshaped0"
input: "avpl1_C0"
output: "depth1_C01"
name: "depth1_Add"
op_type: "Add"
domain: ""
}
node {
input: "path_length2_reshaped0"
input: "avpl2_C0"
output: "depth2_C01"
name: "depth2_Add"
op_type: "Add"
domain: ""
}
node {
input: "depth1_C01"
input: "eqp2p_m1_0_Addcst"
output: "depth1_C0"
name: "depth1_Add1"
op_type: "Add"
domain: ""
}
node {
input: "depth2_C01"
input: "eqp2p_m1_0_Addcst"
output: "depth2_C0"
name: "depth2_Add1"
op_type: "Add"
domain: ""
}
node {
input: "depth0_C0"
input: "depth1_C0"
input: "depth2_C0"
output: "dec_sum0"
name: "dec_Sum"
op_type: "Sum"
domain: ""
}
node {
input: "dec_sum0"
input: "dec_Divcst"
output: "dec_C0"
name: "dec_Div"
op_type: "Div"
domain: ""
}
node {
input: "dec_C0"
output: "dec_Y01"
name: "dec_Neg"
op_type: "Neg"
domain: ""
}
node {
input: "dec_Powcst"
input: "dec_Y01"
output: "dec_Z0"
name: "dec_Pow"
op_type: "Pow"
domain: ""
}
node {
input: "dec_Z0"
output: "dec_Y0"
name: "dec_Neg1"
op_type: "Neg"
domain: ""
}
node {
input: "dec_Y0"
input: "dec_Addcst"
output: "scores"
name: "dec_Add"
op_type: "Add"
domain: ""
}
node {
input: "scores"
input: "eqp2p_m1_0_Maxcst1"
output: "predict_C01"
name: "predict_Less"
op_type: "Less"
domain: ""
}
node {
input: "predict_C01"
output: "predict_output0"
name: "predict_Cast"
op_type: "Cast"
attribute {
name: "to"
i: 7
type: INT
}
domain: ""
}
node {
input: "predict_output0"
input: "predict_Mulcst"
output: "predict_C0"
name: "predict_Mul"
op_type: "Mul"
domain: ""
}
node {
input: "predict_C0"
input: "predict_Addcst"
output: "label"
name: "predict_Add"
op_type: "Add"
domain: ""
}
name: "ONNX(IsolationForest)"
initializer {
dims: 1
data_type: 1
float_data: 2
name: "dec_Powcst"
}
initializer {
dims: 2
data_type: 7
int64_data: 0
int64_data: 1
name: "node_sample0_Gathercst"
}
initializer {
dims: 2
data_type: 7
int64_data: -1
int64_data: 1
name: "path_length0_Reshapecst"
}
initializer {
dims: 1
data_type: 1
float_data: -1
name: "eqp2p_m1_0_Addcst"
}
initializer {
dims: 1
data_type: 1
float_data: 1
name: "eqp2p_m1_0_Maxcst"
}
initializer {
dims: 1
data_type: 1
float_data: 0.577215672
name: "eqp_log0_Addcst"
}
initializer {
dims: 1
data_type: 1
float_data: 0
name: "eqp2p_m1_0_Maxcst1"
}
initializer {
dims: 1
data_type: 1
float_data: -2
name: "eqp_ns0_Mulcst"
}
initializer {
dims: 1
dims: 1
data_type: 1
float_data: 25.0940132
name: "dec_Divcst"
}
initializer {
dims: 1
data_type: 1
float_data: 0.5
name: "dec_Addcst"
}
initializer {
dims: 1
data_type: 7
int64_data: -2
name: "predict_Mulcst"
}
initializer {
dims: 1
data_type: 7
int64_data: 1
name: "predict_Addcst"
}
input {
name: "X"
type {
tensor_type {
elem_type: 1
shape {
dim {
}
dim {
dim_value: 2
}
}
}
}
}
output {
name: "label"
type {
tensor_type {
elem_type: 7
shape {
dim {
}
dim {
dim_value: 1
}
}
}
}
}
output {
name: "scores"
type {
tensor_type {
elem_type: 1
shape {
dim {
}
dim {
dim_value: 1
}
}
}
}
}
}
opset_import {
domain: ""
version: 15
}
opset_import {
domain: "ai.onnx.ml"
version: 2
}
The last line shows the opsets. Let’s extract it.
domains = onx.opset_import
for dom in domains:
print("domain: %r, version: %r" % (dom.domain, dom.version))
domain: '', version: 15
domain: 'ai.onnx.ml', version: 2
There are two opsets, one for standard operators, the other for machine learning operators.
ONNX and opset¶
The converter can convert a model to an older opset than the default one, from 1 to the last available one.
def get_domain_opset(onx):
domains = onx.opset_import
res = [{"domain": dom.domain, "version": dom.version} for dom in domains]
return {d["domain"]: d["version"] for d in res}
for opset in range(6, onnx_opset_version() + 1):
try:
onx = to_onnx(
model,
X[:1].astype(numpy.float32),
target_opset={"": opset, "ai.onnx.ml": 2},
)
except RuntimeError as e:
print("target: %r error: %r" % (opset, e))
continue
nodes = len(onx.graph.node)
print("target: %r --> %s %d" % (opset, get_domain_opset(onx), nodes))
target: 6 --> {'ai.onnx.ml': 2, '': 6} 91
target: 7 --> {'': 7, 'ai.onnx.ml': 2} 91
target: 8 --> {'': 8, 'ai.onnx.ml': 2} 91
target: 9 --> {'': 9, 'ai.onnx.ml': 2} 91
target: 10 --> {'ai.onnx.ml': 2, '': 10} 91
target: 11 --> {'ai.onnx.ml': 2, '': 11} 91
target: 12 --> {'': 12, 'ai.onnx.ml': 2} 91
target: 13 --> {'': 13, 'ai.onnx.ml': 2} 91
target: 14 --> {'': 14, 'ai.onnx.ml': 2} 91
target: 15 --> {'': 15, 'ai.onnx.ml': 2} 91
target: 16 --> {'': 16, 'ai.onnx.ml': 2} 91
target: 17 --> {'': 17, 'ai.onnx.ml': 2} 91
target: 18 --> {'': 18, 'ai.onnx.ml': 2} 91
target: 19 --> {'': 19, 'ai.onnx.ml': 2} 91
target: 20 --> {'': 20, 'ai.onnx.ml': 2} 91
target: 21 --> {'': 21, 'ai.onnx.ml': 2} 91
/home/xadupre/github/sklearn-onnx/skl2onnx/common/_topology.py:1510: UserWarning: Parameter target_opset 22 > 21 is higher than the the latest tested version.
warnings.warn(
target: 22 error: RuntimeError("The model is using version 22 of domain '' not supported yet by this library. You need to specify target_opset={'': 21}.")
/home/xadupre/github/sklearn-onnx/skl2onnx/common/_topology.py:1510: UserWarning: Parameter target_opset 23 > 21 is higher than the the latest tested version.
warnings.warn(
target: 23 error: RuntimeError("The model is using version 23 of domain '' not supported yet by this library. You need to specify target_opset={'': 21}.")
It shows that the model cannot be converted for opset below 5. Operator Reshape changed in opset 5: a parameter became an input. The converter does not support opset < 5 because runtimes usually do not.
Other opsets¶
The previous example changed the opset of the main domain
''
but the other opset domain can be changed as well.
for opset in range(9, onnx_opset_version() + 1):
for opset_ml in range(1, 4):
tops = {"": opset, "ai.onnx.ml": opset_ml}
try:
print("try target_opset:", tops)
onx = to_onnx(model, X[:1].astype(numpy.float32), target_opset=tops)
except RuntimeError as e:
print("target: %r error: %r" % (opset, e))
continue
nodes = len(onx.graph.node)
print("target: %r --> %s %d" % (opset, get_domain_opset(onx), nodes))
try target_opset: {'': 9, 'ai.onnx.ml': 1}
target: 9 error: RuntimeError("This converter requires at least opset 2 for domain 'ai.onnx.ml'.")
try target_opset: {'': 9, 'ai.onnx.ml': 2}
target: 9 --> {'': 9, 'ai.onnx.ml': 2} 91
try target_opset: {'': 9, 'ai.onnx.ml': 3}
target: 9 --> {'': 9, 'ai.onnx.ml': 3} 91
try target_opset: {'': 10, 'ai.onnx.ml': 1}
target: 10 error: RuntimeError("This converter requires at least opset 2 for domain 'ai.onnx.ml'.")
try target_opset: {'': 10, 'ai.onnx.ml': 2}
target: 10 --> {'ai.onnx.ml': 2, '': 10} 91
try target_opset: {'': 10, 'ai.onnx.ml': 3}
target: 10 --> {'ai.onnx.ml': 3, '': 10} 91
try target_opset: {'': 11, 'ai.onnx.ml': 1}
target: 11 error: RuntimeError("This converter requires at least opset 2 for domain 'ai.onnx.ml'.")
try target_opset: {'': 11, 'ai.onnx.ml': 2}
target: 11 --> {'ai.onnx.ml': 2, '': 11} 91
try target_opset: {'': 11, 'ai.onnx.ml': 3}
target: 11 --> {'': 11, 'ai.onnx.ml': 3} 91
try target_opset: {'': 12, 'ai.onnx.ml': 1}
target: 12 error: RuntimeError("This converter requires at least opset 2 for domain 'ai.onnx.ml'.")
try target_opset: {'': 12, 'ai.onnx.ml': 2}
target: 12 --> {'': 12, 'ai.onnx.ml': 2} 91
try target_opset: {'': 12, 'ai.onnx.ml': 3}
target: 12 --> {'': 12, 'ai.onnx.ml': 3} 91
try target_opset: {'': 13, 'ai.onnx.ml': 1}
target: 13 error: RuntimeError("This converter requires at least opset 2 for domain 'ai.onnx.ml'.")
try target_opset: {'': 13, 'ai.onnx.ml': 2}
target: 13 --> {'': 13, 'ai.onnx.ml': 2} 91
try target_opset: {'': 13, 'ai.onnx.ml': 3}
target: 13 --> {'': 13, 'ai.onnx.ml': 3} 91
try target_opset: {'': 14, 'ai.onnx.ml': 1}
target: 14 error: RuntimeError("This converter requires at least opset 2 for domain 'ai.onnx.ml'.")
try target_opset: {'': 14, 'ai.onnx.ml': 2}
target: 14 --> {'': 14, 'ai.onnx.ml': 2} 91
try target_opset: {'': 14, 'ai.onnx.ml': 3}
target: 14 --> {'': 14, 'ai.onnx.ml': 3} 91
try target_opset: {'': 15, 'ai.onnx.ml': 1}
target: 15 error: RuntimeError("This converter requires at least opset 2 for domain 'ai.onnx.ml'.")
try target_opset: {'': 15, 'ai.onnx.ml': 2}
target: 15 --> {'': 15, 'ai.onnx.ml': 2} 91
try target_opset: {'': 15, 'ai.onnx.ml': 3}
target: 15 --> {'': 15, 'ai.onnx.ml': 3} 91
try target_opset: {'': 16, 'ai.onnx.ml': 1}
target: 16 error: RuntimeError("This converter requires at least opset 2 for domain 'ai.onnx.ml'.")
try target_opset: {'': 16, 'ai.onnx.ml': 2}
target: 16 --> {'': 16, 'ai.onnx.ml': 2} 91
try target_opset: {'': 16, 'ai.onnx.ml': 3}
target: 16 --> {'': 16, 'ai.onnx.ml': 3} 91
try target_opset: {'': 17, 'ai.onnx.ml': 1}
target: 17 error: RuntimeError("This converter requires at least opset 2 for domain 'ai.onnx.ml'.")
try target_opset: {'': 17, 'ai.onnx.ml': 2}
target: 17 --> {'': 17, 'ai.onnx.ml': 2} 91
try target_opset: {'': 17, 'ai.onnx.ml': 3}
target: 17 --> {'': 17, 'ai.onnx.ml': 3} 91
try target_opset: {'': 18, 'ai.onnx.ml': 1}
target: 18 error: RuntimeError("This converter requires at least opset 2 for domain 'ai.onnx.ml'.")
try target_opset: {'': 18, 'ai.onnx.ml': 2}
target: 18 --> {'': 18, 'ai.onnx.ml': 2} 91
try target_opset: {'': 18, 'ai.onnx.ml': 3}
target: 18 --> {'': 18, 'ai.onnx.ml': 3} 91
try target_opset: {'': 19, 'ai.onnx.ml': 1}
target: 19 error: RuntimeError("This converter requires at least opset 2 for domain 'ai.onnx.ml'.")
try target_opset: {'': 19, 'ai.onnx.ml': 2}
target: 19 --> {'': 19, 'ai.onnx.ml': 2} 91
try target_opset: {'': 19, 'ai.onnx.ml': 3}
target: 19 --> {'': 19, 'ai.onnx.ml': 3} 91
try target_opset: {'': 20, 'ai.onnx.ml': 1}
target: 20 error: RuntimeError("This converter requires at least opset 2 for domain 'ai.onnx.ml'.")
try target_opset: {'': 20, 'ai.onnx.ml': 2}
target: 20 --> {'': 20, 'ai.onnx.ml': 2} 91
try target_opset: {'': 20, 'ai.onnx.ml': 3}
target: 20 --> {'': 20, 'ai.onnx.ml': 3} 91
try target_opset: {'': 21, 'ai.onnx.ml': 1}
target: 21 error: RuntimeError("This converter requires at least opset 2 for domain 'ai.onnx.ml'.")
try target_opset: {'': 21, 'ai.onnx.ml': 2}
target: 21 --> {'': 21, 'ai.onnx.ml': 2} 91
try target_opset: {'': 21, 'ai.onnx.ml': 3}
target: 21 --> {'': 21, 'ai.onnx.ml': 3} 91
try target_opset: {'': 22, 'ai.onnx.ml': 1}
/home/xadupre/github/sklearn-onnx/skl2onnx/common/_topology.py:1510: UserWarning: Parameter target_opset 22 > 21 is higher than the the latest tested version.
warnings.warn(
target: 22 error: RuntimeError("This converter requires at least opset 2 for domain 'ai.onnx.ml'.")
try target_opset: {'': 22, 'ai.onnx.ml': 2}
target: 22 error: RuntimeError("The model is using version 22 of domain '' not supported yet by this library. You need to specify target_opset={'': 21}.")
try target_opset: {'': 22, 'ai.onnx.ml': 3}
/home/xadupre/github/sklearn-onnx/skl2onnx/common/_topology.py:1510: UserWarning: Parameter target_opset 22 > 21 is higher than the the latest tested version.
warnings.warn(
target: 22 error: RuntimeError("The model is using version 22 of domain '' not supported yet by this library. You need to specify target_opset={'': 21}.")
try target_opset: {'': 23, 'ai.onnx.ml': 1}
/home/xadupre/github/sklearn-onnx/skl2onnx/common/_topology.py:1510: UserWarning: Parameter target_opset 23 > 21 is higher than the the latest tested version.
warnings.warn(
target: 23 error: RuntimeError("This converter requires at least opset 2 for domain 'ai.onnx.ml'.")
try target_opset: {'': 23, 'ai.onnx.ml': 2}
target: 23 error: RuntimeError("The model is using version 23 of domain '' not supported yet by this library. You need to specify target_opset={'': 21}.")
try target_opset: {'': 23, 'ai.onnx.ml': 3}
/home/xadupre/github/sklearn-onnx/skl2onnx/common/_topology.py:1510: UserWarning: Parameter target_opset 23 > 21 is higher than the the latest tested version.
warnings.warn(
target: 23 error: RuntimeError("The model is using version 23 of domain '' not supported yet by this library. You need to specify target_opset={'': 21}.")
Total running time of the script: (0 minutes 1.107 seconds)