注意
前往末尾下载完整的示例代码。
什么是opset编号?¶
每个库都有版本。 scikit-learn 可能会改变特定模型的实现。例如,SVC 模型就发生过这种情况,参数 break_ties 在 0.22 版本中添加。 ONNX 也有一个版本,称为 opset 编号。操作符 ArgMin 在 opset 1 中添加,并在 opset 11、12、13 中进行修改。有时,更新是为了扩展支持的类型列表;有时,它会将参数移到输入列表中。用于部署模型的运行时可能未实现新版本,在这种情况下,模型通常需要使用运行时支持的最新 opset 进行转换,我们将该 opset 称为 目标 opset。ONNX 图只包含一个唯一的 opset,每个节点都必须按照目标 opset 以下的最新 opset 定义的规范进行描述。
本示例考虑了 IsolationForest 并深入探讨了 opset。
数据¶
一个简单的示例。
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
}
最后一行显示了 opset。我们来提取它。
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
有两个 opset,一个用于标准操作符,另一个用于机器学习操作符。
ONNX 和 opset¶
转换器可以将模型转换为比默认版本更旧的 opset,范围从 1 到最后一个可用版本。
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}.")
这表明模型无法转换为低于 5 的 opset。操作符 Reshape 在 opset 5 中发生了变化:一个参数变成了输入。转换器不支持 opset < 5 是因为运行时通常不支持。
其他 opset¶
前面的示例更改了主要领域 ''
的 opset,但其他 opset 领域也可以更改。
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}.")
脚本总运行时间: (0 分钟 1.107 秒)