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 (0, 1):
    ax.plot(X[labels == k, 0], X[labels == k, 1], 'o', label="cl%d" % k)
ax.set_title("Sample")
Sample
Text(0.5, 1.0, 'Sample')

ONNX#

onx = to_onnx(model, X[:1].astype(numpy.float32))
print(onx)
ir_version: 8
producer_name: "skl2onnx"
producer_version: "1.13.1"
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: "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: 46
      ints: 25
      ints: 22
      ints: 17
      ints: 12
      ints: 9
      ints: 8
      ints: 0
      ints: 0
      ints: 11
      ints: 0
      ints: 0
      ints: 14
      ints: 0
      ints: 16
      ints: 0
      ints: 0
      ints: 21
      ints: 20
      ints: 0
      ints: 0
      ints: 0
      ints: 24
      ints: 0
      ints: 0
      ints: 35
      ints: 28
      ints: 0
      ints: 30
      ints: 0
      ints: 34
      ints: 33
      ints: 0
      ints: 0
      ints: 0
      ints: 43
      ints: 38
      ints: 0
      ints: 40
      ints: 0
      ints: 42
      ints: 0
      ints: 0
      ints: 45
      ints: 0
      ints: 0
      ints: 96
      ints: 77
      ints: 62
      ints: 57
      ints: 54
      ints: 53
      ints: 0
      ints: 0
      ints: 56
      ints: 0
      ints: 0
      ints: 61
      ints: 60
      ints: 0
      ints: 0
      ints: 0
      ints: 70
      ints: 67
      ints: 66
      ints: 0
      ints: 0
      ints: 69
      ints: 0
      ints: 0
      ints: 74
      ints: 73
      ints: 0
      ints: 0
      ints: 76
      ints: 0
      ints: 0
      ints: 91
      ints: 84
      ints: 81
      ints: 0
      ints: 83
      ints: 0
      ints: 0
      ints: 88
      ints: 87
      ints: 0
      ints: 0
      ints: 90
      ints: 0
      ints: 0
      ints: 93
      ints: 0
      ints: 95
      ints: 0
      ints: 0
      ints: 98
      ints: 0
      ints: 0
      type: INTS
    }
    attribute {
      name: "nodes_featureids"
      ints: 1
      ints: 1
      ints: 1
      ints: 1
      ints: 0
      ints: 0
      ints: 1
      ints: 0
      ints: 0
      ints: 0
      ints: 0
      ints: 0
      ints: 1
      ints: 0
      ints: 1
      ints: 0
      ints: 0
      ints: 1
      ints: 1
      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: 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: 0
      ints: 0
      ints: 1
      ints: 1
      ints: 0
      ints: 1
      ints: 1
      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: 1
      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: 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: 0
      ints: 0
      ints: 0
      type: INTS
    }
    attribute {
      name: "nodes_hitrates"
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      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: "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: "LEAF"
      strings: "LEAF"
      strings: "LEAF"
      strings: "BRANCH_LEQ"
      strings: "LEAF"
      strings: "LEAF"
      strings: "BRANCH_LEQ"
      strings: "BRANCH_LEQ"
      strings: "LEAF"
      strings: "BRANCH_LEQ"
      strings: "LEAF"
      strings: "BRANCH_LEQ"
      strings: "BRANCH_LEQ"
      strings: "LEAF"
      strings: "LEAF"
      strings: "LEAF"
      strings: "BRANCH_LEQ"
      strings: "BRANCH_LEQ"
      strings: "LEAF"
      strings: "BRANCH_LEQ"
      strings: "LEAF"
      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: "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: "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: "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: "BRANCH_LEQ"
      strings: "LEAF"
      strings: "LEAF"
      strings: "BRANCH_LEQ"
      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
      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: 7
      ints: 0
      ints: 0
      ints: 10
      ints: 0
      ints: 0
      ints: 13
      ints: 0
      ints: 15
      ints: 0
      ints: 0
      ints: 18
      ints: 19
      ints: 0
      ints: 0
      ints: 0
      ints: 23
      ints: 0
      ints: 0
      ints: 26
      ints: 27
      ints: 0
      ints: 29
      ints: 0
      ints: 31
      ints: 32
      ints: 0
      ints: 0
      ints: 0
      ints: 36
      ints: 37
      ints: 0
      ints: 39
      ints: 0
      ints: 41
      ints: 0
      ints: 0
      ints: 44
      ints: 0
      ints: 0
      ints: 47
      ints: 48
      ints: 49
      ints: 50
      ints: 51
      ints: 52
      ints: 0
      ints: 0
      ints: 55
      ints: 0
      ints: 0
      ints: 58
      ints: 59
      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: 0
      ints: 0
      ints: 75
      ints: 0
      ints: 0
      ints: 78
      ints: 79
      ints: 80
      ints: 0
      ints: 82
      ints: 0
      ints: 0
      ints: 85
      ints: 86
      ints: 0
      ints: 0
      ints: 89
      ints: 0
      ints: 0
      ints: 92
      ints: 0
      ints: 94
      ints: 0
      ints: 0
      ints: 97
      ints: 0
      ints: 0
      type: INTS
    }
    attribute {
      name: "nodes_values"
      floats: -0.8070317506790161
      floats: -9.652077674865723
      floats: -9.856155395507812
      floats: -10.122535705566406
      floats: -5.152268409729004
      floats: -5.454828262329102
      floats: -11.227964401245117
      floats: 0.0
      floats: 0.0
      floats: -5.200899124145508
      floats: 0.0
      floats: 0.0
      floats: -11.047469139099121
      floats: 0.0
      floats: -10.244635581970215
      floats: 0.0
      floats: 0.0
      floats: -9.988739013671875
      floats: -10.056267738342285
      floats: 0.0
      floats: 0.0
      floats: 0.0
      floats: -5.005507946014404
      floats: 0.0
      floats: 0.0
      floats: -5.62140417098999
      floats: -6.910717010498047
      floats: 0.0
      floats: -9.424972534179688
      floats: 0.0
      floats: -6.0298261642456055
      floats: -8.82068157196045
      floats: 0.0
      floats: 0.0
      floats: 0.0
      floats: -4.442037105560303
      floats: -5.136704921722412
      floats: 0.0
      floats: -5.086482524871826
      floats: 0.0
      floats: -8.725916862487793
      floats: 0.0
      floats: 0.0
      floats: -4.286681175231934
      floats: 0.0
      floats: 0.0
      floats: 11.130135536193848
      floats: 6.422806262969971
      floats: 5.163702487945557
      floats: 5.007476806640625
      floats: 4.106273174285889
      floats: 3.242016553878784
      floats: 0.0
      floats: 0.0
      floats: 4.83004093170166
      floats: 0.0
      floats: 0.0
      floats: 5.378856182098389
      floats: 4.344188213348389
      floats: 0.0
      floats: 0.0
      floats: 0.0
      floats: 5.477608680725098
      floats: 2.9394023418426514
      floats: 5.255387306213379
      floats: 0.0
      floats: 0.0
      floats: 5.313088417053223
      floats: 0.0
      floats: 0.0
      floats: 5.799378395080566
      floats: 5.497035503387451
      floats: 0.0
      floats: 0.0
      floats: 5.345741271972656
      floats: 0.0
      floats: 0.0
      floats: 3.062147378921509
      floats: 8.672112464904785
      floats: 0.5111460089683533
      floats: 0.0
      floats: 2.0258328914642334
      floats: 0.0
      floats: 0.0
      floats: 9.074007034301758
      floats: 1.5279117822647095
      floats: 0.0
      floats: 0.0
      floats: 9.835423469543457
      floats: 0.0
      floats: 0.0
      floats: 9.247272491455078
      floats: 0.0
      floats: 4.045421123504639
      floats: 0.0
      floats: 0.0
      floats: 2.6913914680480957
      floats: 0.0
      floats: 0.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: 7
      ints: 8
      ints: 10
      ints: 11
      ints: 13
      ints: 15
      ints: 16
      ints: 19
      ints: 20
      ints: 21
      ints: 23
      ints: 24
      ints: 27
      ints: 29
      ints: 32
      ints: 33
      ints: 34
      ints: 37
      ints: 39
      ints: 41
      ints: 42
      ints: 44
      ints: 45
      ints: 52
      ints: 53
      ints: 55
      ints: 56
      ints: 59
      ints: 60
      ints: 61
      ints: 65
      ints: 66
      ints: 68
      ints: 69
      ints: 72
      ints: 73
      ints: 75
      ints: 76
      ints: 80
      ints: 82
      ints: 83
      ints: 86
      ints: 87
      ints: 89
      ints: 90
      ints: 92
      ints: 94
      ints: 95
      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: 7.0
      floats: 8.0
      floats: 10.0
      floats: 11.0
      floats: 13.0
      floats: 15.0
      floats: 16.0
      floats: 19.0
      floats: 20.0
      floats: 21.0
      floats: 23.0
      floats: 24.0
      floats: 27.0
      floats: 29.0
      floats: 32.0
      floats: 33.0
      floats: 34.0
      floats: 37.0
      floats: 39.0
      floats: 41.0
      floats: 42.0
      floats: 44.0
      floats: 45.0
      floats: 52.0
      floats: 53.0
      floats: 55.0
      floats: 56.0
      floats: 59.0
      floats: 60.0
      floats: 61.0
      floats: 65.0
      floats: 66.0
      floats: 68.0
      floats: 69.0
      floats: 72.0
      floats: 73.0
      floats: 75.0
      floats: 76.0
      floats: 80.0
      floats: 82.0
      floats: 83.0
      floats: 86.0
      floats: 87.0
      floats: 89.0
      floats: 90.0
      floats: 92.0
      floats: 94.0
      floats: 95.0
      floats: 97.0
      floats: 98.0
      type: FLOATS
    }
    domain: "ai.onnx.ml"
  }
  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_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: 58
      ints: 33
      ints: 8
      ints: 7
      ints: 6
      ints: 0
      ints: 0
      ints: 0
      ints: 22
      ints: 15
      ints: 14
      ints: 13
      ints: 0
      ints: 0
      ints: 0
      ints: 19
      ints: 18
      ints: 0
      ints: 0
      ints: 21
      ints: 0
      ints: 0
      ints: 30
      ints: 27
      ints: 26
      ints: 0
      ints: 0
      ints: 29
      ints: 0
      ints: 0
      ints: 32
      ints: 0
      ints: 0
      ints: 43
      ints: 36
      ints: 0
      ints: 38
      ints: 0
      ints: 42
      ints: 41
      ints: 0
      ints: 0
      ints: 0
      ints: 57
      ints: 52
      ints: 49
      ints: 48
      ints: 0
      ints: 0
      ints: 51
      ints: 0
      ints: 0
      ints: 54
      ints: 0
      ints: 56
      ints: 0
      ints: 0
      ints: 0
      ints: 80
      ints: 61
      ints: 0
      ints: 73
      ints: 68
      ints: 67
      ints: 66
      ints: 0
      ints: 0
      ints: 0
      ints: 72
      ints: 71
      ints: 0
      ints: 0
      ints: 0
      ints: 77
      ints: 76
      ints: 0
      ints: 0
      ints: 79
      ints: 0
      ints: 0
      ints: 94
      ints: 83
      ints: 0
      ints: 89
      ints: 88
      ints: 87
      ints: 0
      ints: 0
      ints: 0
      ints: 91
      ints: 0
      ints: 93
      ints: 0
      ints: 0
      ints: 0
      type: INTS
    }
    attribute {
      name: "nodes_featureids"
      ints: 1
      ints: 1
      ints: 1
      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: 0
      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: 0
      ints: 0
      ints: 1
      ints: 0
      ints: 0
      ints: 0
      ints: 1
      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: 0
      ints: 0
      ints: 0
      ints: 0
      ints: 0
      ints: 1
      ints: 0
      ints: 1
      ints: 0
      ints: 0
      ints: 0
      ints: 0
      ints: 1
      ints: 0
      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: 1
      ints: 0
      ints: 0
      ints: 0
      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: 1
      ints: 0
      ints: 1
      ints: 0
      ints: 0
      ints: 0
      type: INTS
    }
    attribute {
      name: "nodes_hitrates"
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      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
      type: INTS
    }
    attribute {
      name: "nodes_modes"
      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: "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"
      strings: "BRANCH_LEQ"
      strings: "BRANCH_LEQ"
      strings: "LEAF"
      strings: "BRANCH_LEQ"
      strings: "LEAF"
      strings: "BRANCH_LEQ"
      strings: "BRANCH_LEQ"
      strings: "LEAF"
      strings: "LEAF"
      strings: "LEAF"
      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: "LEAF"
      strings: "BRANCH_LEQ"
      strings: "LEAF"
      strings: "LEAF"
      strings: "LEAF"
      strings: "BRANCH_LEQ"
      strings: "BRANCH_LEQ"
      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: "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: "BRANCH_LEQ"
      strings: "BRANCH_LEQ"
      strings: "BRANCH_LEQ"
      strings: "LEAF"
      strings: "LEAF"
      strings: "LEAF"
      strings: "BRANCH_LEQ"
      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
      ints: 85
      ints: 86
      ints: 87
      ints: 88
      ints: 89
      ints: 90
      ints: 91
      ints: 92
      ints: 93
      ints: 94
      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
      type: INTS
    }
    attribute {
      name: "nodes_truenodeids"
      ints: 1
      ints: 2
      ints: 3
      ints: 4
      ints: 5
      ints: 0
      ints: 0
      ints: 0
      ints: 9
      ints: 10
      ints: 11
      ints: 12
      ints: 0
      ints: 0
      ints: 0
      ints: 16
      ints: 17
      ints: 0
      ints: 0
      ints: 20
      ints: 0
      ints: 0
      ints: 23
      ints: 24
      ints: 25
      ints: 0
      ints: 0
      ints: 28
      ints: 0
      ints: 0
      ints: 31
      ints: 0
      ints: 0
      ints: 34
      ints: 35
      ints: 0
      ints: 37
      ints: 0
      ints: 39
      ints: 40
      ints: 0
      ints: 0
      ints: 0
      ints: 44
      ints: 45
      ints: 46
      ints: 47
      ints: 0
      ints: 0
      ints: 50
      ints: 0
      ints: 0
      ints: 53
      ints: 0
      ints: 55
      ints: 0
      ints: 0
      ints: 0
      ints: 59
      ints: 60
      ints: 0
      ints: 62
      ints: 63
      ints: 64
      ints: 65
      ints: 0
      ints: 0
      ints: 0
      ints: 69
      ints: 70
      ints: 0
      ints: 0
      ints: 0
      ints: 74
      ints: 75
      ints: 0
      ints: 0
      ints: 78
      ints: 0
      ints: 0
      ints: 81
      ints: 82
      ints: 0
      ints: 84
      ints: 85
      ints: 86
      ints: 0
      ints: 0
      ints: 0
      ints: 90
      ints: 0
      ints: 92
      ints: 0
      ints: 0
      ints: 0
      type: INTS
    }
    attribute {
      name: "nodes_values"
      floats: 4.492710113525391
      floats: 1.8137110471725464
      floats: -11.14205265045166
      floats: -4.3846869468688965
      floats: -5.29104471206665
      floats: 0.0
      floats: 0.0
      floats: 0.0
      floats: -4.8614044189453125
      floats: -6.360254764556885
      floats: -7.374013900756836
      floats: -6.580399513244629
      floats: 0.0
      floats: 0.0
      floats: 0.0
      floats: -5.478109836578369
      floats: -5.746279239654541
      floats: 0.0
      floats: 0.0
      floats: -5.28294038772583
      floats: 0.0
      floats: 0.0
      floats: -9.286454200744629
      floats: -10.088170051574707
      floats: -10.366056442260742
      floats: 0.0
      floats: 0.0
      floats: -4.583370208740234
      floats: 0.0
      floats: 0.0
      floats: -8.82841682434082
      floats: 0.0
      floats: 0.0
      floats: 4.741560459136963
      floats: 2.2646350860595703
      floats: 0.0
      floats: 3.7192742824554443
      floats: 0.0
      floats: 4.65692138671875
      floats: 4.394144058227539
      floats: 0.0
      floats: 0.0
      floats: 0.0
      floats: 4.252833843231201
      floats: 3.870877265930176
      floats: 5.220426559448242
      floats: 4.985894203186035
      floats: 0.0
      floats: 0.0
      floats: 5.732982635498047
      floats: 0.0
      floats: 0.0
      floats: 4.107557773590088
      floats: 0.0
      floats: 4.194362163543701
      floats: 0.0
      floats: 0.0
      floats: 0.0
      floats: 3.9582090377807617
      floats: 6.8124518394470215
      floats: 0.0
      floats: 10.295424461364746
      floats: 9.781411170959473
      floats: 3.1521778106689453
      floats: 2.5603690147399902
      floats: 0.0
      floats: 0.0
      floats: 0.0
      floats: 2.002715826034546
      floats: 1.913690447807312
      floats: 0.0
      floats: 0.0
      floats: 0.0
      floats: 11.071511268615723
      floats: 2.8258707523345947
      floats: 0.0
      floats: 0.0
      floats: 2.7306971549987793
      floats: 0.0
      floats: 0.0
      floats: 7.606701850891113
      floats: 4.2018141746521
      floats: 0.0
      floats: 5.190540790557861
      floats: 5.524472713470459
      floats: 4.838264465332031
      floats: 0.0
      floats: 0.0
      floats: 0.0
      floats: 5.397176265716553
      floats: 0.0
      floats: 5.71746301651001
      floats: 0.0
      floats: 0.0
      floats: 0.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
      type: INTS
    }
    attribute {
      name: "target_nodeids"
      ints: 5
      ints: 6
      ints: 7
      ints: 12
      ints: 13
      ints: 14
      ints: 17
      ints: 18
      ints: 20
      ints: 21
      ints: 25
      ints: 26
      ints: 28
      ints: 29
      ints: 31
      ints: 32
      ints: 35
      ints: 37
      ints: 40
      ints: 41
      ints: 42
      ints: 47
      ints: 48
      ints: 50
      ints: 51
      ints: 53
      ints: 55
      ints: 56
      ints: 57
      ints: 60
      ints: 65
      ints: 66
      ints: 67
      ints: 70
      ints: 71
      ints: 72
      ints: 75
      ints: 76
      ints: 78
      ints: 79
      ints: 82
      ints: 86
      ints: 87
      ints: 88
      ints: 90
      ints: 92
      ints: 93
      ints: 94
      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
      type: INTS
    }
    attribute {
      name: "target_weights"
      floats: 5.0
      floats: 6.0
      floats: 7.0
      floats: 12.0
      floats: 13.0
      floats: 14.0
      floats: 17.0
      floats: 18.0
      floats: 20.0
      floats: 21.0
      floats: 25.0
      floats: 26.0
      floats: 28.0
      floats: 29.0
      floats: 31.0
      floats: 32.0
      floats: 35.0
      floats: 37.0
      floats: 40.0
      floats: 41.0
      floats: 42.0
      floats: 47.0
      floats: 48.0
      floats: 50.0
      floats: 51.0
      floats: 53.0
      floats: 55.0
      floats: 56.0
      floats: 57.0
      floats: 60.0
      floats: 65.0
      floats: 66.0
      floats: 67.0
      floats: 70.0
      floats: 71.0
      floats: 72.0
      floats: 75.0
      floats: 76.0
      floats: 78.0
      floats: 79.0
      floats: 82.0
      floats: 86.0
      floats: 87.0
      floats: 88.0
      floats: 90.0
      floats: 92.0
      floats: 93.0
      floats: 94.0
      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: 66
      ints: 27
      ints: 16
      ints: 9
      ints: 6
      ints: 0
      ints: 8
      ints: 0
      ints: 0
      ints: 15
      ints: 14
      ints: 13
      ints: 0
      ints: 0
      ints: 0
      ints: 0
      ints: 26
      ints: 23
      ints: 20
      ints: 0
      ints: 22
      ints: 0
      ints: 0
      ints: 25
      ints: 0
      ints: 0
      ints: 0
      ints: 43
      ints: 36
      ints: 31
      ints: 0
      ints: 33
      ints: 0
      ints: 35
      ints: 0
      ints: 0
      ints: 42
      ints: 39
      ints: 0
      ints: 41
      ints: 0
      ints: 0
      ints: 0
      ints: 55
      ints: 50
      ints: 49
      ints: 48
      ints: 0
      ints: 0
      ints: 0
      ints: 52
      ints: 0
      ints: 54
      ints: 0
      ints: 0
      ints: 63
      ints: 60
      ints: 59
      ints: 0
      ints: 0
      ints: 62
      ints: 0
      ints: 0
      ints: 65
      ints: 0
      ints: 0
      ints: 94
      ints: 81
      ints: 78
      ints: 73
      ints: 72
      ints: 0
      ints: 0
      ints: 75
      ints: 0
      ints: 77
      ints: 0
      ints: 0
      ints: 80
      ints: 0
      ints: 0
      ints: 83
      ints: 0
      ints: 91
      ints: 88
      ints: 87
      ints: 0
      ints: 0
      ints: 90
      ints: 0
      ints: 0
      ints: 93
      ints: 0
      ints: 0
      ints: 120
      ints: 105
      ints: 102
      ints: 101
      ints: 100
      ints: 0
      ints: 0
      ints: 0
      ints: 104
      ints: 0
      ints: 0
      ints: 113
      ints: 110
      ints: 109
      ints: 0
      ints: 0
      ints: 112
      ints: 0
      ints: 0
      ints: 117
      ints: 116
      ints: 0
      ints: 0
      ints: 119
      ints: 0
      ints: 0
      ints: 0
      type: INTS
    }
    attribute {
      name: "nodes_featureids"
      ints: 1
      ints: 1
      ints: 1
      ints: 0
      ints: 0
      ints: 0
      ints: 1
      ints: 0
      ints: 0
      ints: 1
      ints: 0
      ints: 1
      ints: 0
      ints: 0
      ints: 0
      ints: 0
      ints: 0
      ints: 1
      ints: 1
      ints: 0
      ints: 0
      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: 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: 1
      ints: 0
      ints: 0
      ints: 0
      ints: 0
      ints: 0
      ints: 0
      ints: 0
      ints: 0
      ints: 1
      ints: 0
      ints: 1
      ints: 0
      ints: 0
      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: 1
      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: 0
      ints: 0
      ints: 1
      ints: 1
      ints: 0
      ints: 1
      ints: 1
      ints: 0
      ints: 0
      ints: 0
      ints: 0
      ints: 0
      ints: 0
      ints: 1
      ints: 1
      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: 0
      ints: 0
      type: INTS
    }
    attribute {
      name: "nodes_hitrates"
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      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
      ints: 0
      ints: 0
      ints: 0
      ints: 0
      ints: 0
      ints: 0
      ints: 0
      ints: 0
      ints: 0
      ints: 0
      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: "LEAF"
      strings: "BRANCH_LEQ"
      strings: "LEAF"
      strings: "LEAF"
      strings: "BRANCH_LEQ"
      strings: "BRANCH_LEQ"
      strings: "BRANCH_LEQ"
      strings: "LEAF"
      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: "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: "BRANCH_LEQ"
      strings: "LEAF"
      strings: "LEAF"
      strings: "BRANCH_LEQ"
      strings: "BRANCH_LEQ"
      strings: "LEAF"
      strings: "BRANCH_LEQ"
      strings: "LEAF"
      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: "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: "BRANCH_LEQ"
      strings: "BRANCH_LEQ"
      strings: "BRANCH_LEQ"
      strings: "BRANCH_LEQ"
      strings: "LEAF"
      strings: "LEAF"
      strings: "BRANCH_LEQ"
      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: "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: "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: "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
      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
      ints: 99
      ints: 100
      ints: 101
      ints: 102
      ints: 103
      ints: 104
      ints: 105
      ints: 106
      ints: 107
      ints: 108
      ints: 109
      ints: 110
      ints: 111
      ints: 112
      ints: 113
      ints: 114
      ints: 115
      ints: 116
      ints: 117
      ints: 118
      ints: 119
      ints: 120
      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
      ints: 0
      ints: 0
      ints: 0
      ints: 0
      ints: 0
      ints: 0
      ints: 0
      ints: 0
      ints: 0
      ints: 0
      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: 0
      ints: 7
      ints: 0
      ints: 0
      ints: 10
      ints: 11
      ints: 12
      ints: 0
      ints: 0
      ints: 0
      ints: 0
      ints: 17
      ints: 18
      ints: 19
      ints: 0
      ints: 21
      ints: 0
      ints: 0
      ints: 24
      ints: 0
      ints: 0
      ints: 0
      ints: 28
      ints: 29
      ints: 30
      ints: 0
      ints: 32
      ints: 0
      ints: 34
      ints: 0
      ints: 0
      ints: 37
      ints: 38
      ints: 0
      ints: 40
      ints: 0
      ints: 0
      ints: 0
      ints: 44
      ints: 45
      ints: 46
      ints: 47
      ints: 0
      ints: 0
      ints: 0
      ints: 51
      ints: 0
      ints: 53
      ints: 0
      ints: 0
      ints: 56
      ints: 57
      ints: 58
      ints: 0
      ints: 0
      ints: 61
      ints: 0
      ints: 0
      ints: 64
      ints: 0
      ints: 0
      ints: 67
      ints: 68
      ints: 69
      ints: 70
      ints: 71
      ints: 0
      ints: 0
      ints: 74
      ints: 0
      ints: 76
      ints: 0
      ints: 0
      ints: 79
      ints: 0
      ints: 0
      ints: 82
      ints: 0
      ints: 84
      ints: 85
      ints: 86
      ints: 0
      ints: 0
      ints: 89
      ints: 0
      ints: 0
      ints: 92
      ints: 0
      ints: 0
      ints: 95
      ints: 96
      ints: 97
      ints: 98
      ints: 99
      ints: 0
      ints: 0
      ints: 0
      ints: 103
      ints: 0
      ints: 0
      ints: 106
      ints: 107
      ints: 108
      ints: 0
      ints: 0
      ints: 111
      ints: 0
      ints: 0
      ints: 114
      ints: 115
      ints: 0
      ints: 0
      ints: 118
      ints: 0
      ints: 0
      ints: 0
      type: INTS
    }
    attribute {
      name: "nodes_values"
      floats: -3.434096336364746
      floats: -10.213207244873047
      floats: -10.597492218017578
      floats: -5.33997106552124
      floats: -5.95437479019165
      floats: 0.0
      floats: -11.138469696044922
      floats: 0.0
      floats: 0.0
      floats: -10.824297904968262
      floats: -5.084270477294922
      floats: -11.157074928283691
      floats: 0.0
      floats: 0.0
      floats: 0.0
      floats: 0.0
      floats: -5.006600379943848
      floats: -10.351750373840332
      floats: -10.515202522277832
      floats: 0.0
      floats: -6.766362190246582
      floats: 0.0
      floats: 0.0
      floats: -5.49690055847168
      floats: 0.0
      floats: 0.0
      floats: 0.0
      floats: -9.515968322753906
      floats: -5.338169097900391
      floats: -10.125472068786621
      floats: 0.0
      floats: -6.5571112632751465
      floats: 0.0
      floats: -9.984607696533203
      floats: 0.0
      floats: 0.0
      floats: -9.902061462402344
      floats: -4.626753330230713
      floats: 0.0
      floats: -10.0750093460083
      floats: 0.0
      floats: 0.0
      floats: 0.0
      floats: -8.950275421142578
      floats: -9.4292631149292
      floats: -4.73997163772583
      floats: -9.514078140258789
      floats: 0.0
      floats: 0.0
      floats: 0.0
      floats: -4.884346008300781
      floats: 0.0
      floats: -4.39642858505249
      floats: 0.0
      floats: 0.0
      floats: -8.051329612731934
      floats: -6.103263854980469
      floats: -8.159634590148926
      floats: 0.0
      floats: 0.0
      floats: -8.802407264709473
      floats: 0.0
      floats: 0.0
      floats: -7.7468647956848145
      floats: 0.0
      floats: 0.0
      floats: 7.765452861785889
      floats: 4.260128021240234
      floats: 5.9444499015808105
      floats: 4.511390686035156
      floats: 3.5010416507720947
      floats: 0.0
      floats: 0.0
      floats: 2.610675096511841
      floats: 0.0
      floats: 3.8907833099365234
      floats: 0.0
      floats: 0.0
      floats: 3.913073778152466
      floats: 0.0
      floats: 0.0
      floats: 3.2526254653930664
      floats: 0.0
      floats: 6.512796401977539
      floats: 4.135447025299072
      floats: 5.125690460205078
      floats: 0.0
      floats: 0.0
      floats: 4.982545852661133
      floats: 0.0
      floats: 0.0
      floats: 6.6050286293029785
      floats: 0.0
      floats: 0.0
      floats: 11.194493293762207
      floats: 9.367189407348633
      floats: 2.902617931365967
      floats: 9.038897514343262
      floats: 8.164019584655762
      floats: 0.0
      floats: 0.0
      floats: 0.0
      floats: 3.0049307346343994
      floats: 0.0
      floats: 0.0
      floats: 10.41665267944336
      floats: 10.059526443481445
      floats: 0.7992593050003052
      floats: 0.0
      floats: 0.0
      floats: 2.2354373931884766
      floats: 0.0
      floats: 0.0
      floats: 2.8972747325897217
      floats: 10.937926292419434
      floats: 0.0
      floats: 0.0
      floats: 4.053855895996094
      floats: 0.0
      floats: 0.0
      floats: 0.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
      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: 5
      ints: 7
      ints: 8
      ints: 12
      ints: 13
      ints: 14
      ints: 15
      ints: 19
      ints: 21
      ints: 22
      ints: 24
      ints: 25
      ints: 26
      ints: 30
      ints: 32
      ints: 34
      ints: 35
      ints: 38
      ints: 40
      ints: 41
      ints: 42
      ints: 47
      ints: 48
      ints: 49
      ints: 51
      ints: 53
      ints: 54
      ints: 58
      ints: 59
      ints: 61
      ints: 62
      ints: 64
      ints: 65
      ints: 71
      ints: 72
      ints: 74
      ints: 76
      ints: 77
      ints: 79
      ints: 80
      ints: 82
      ints: 86
      ints: 87
      ints: 89
      ints: 90
      ints: 92
      ints: 93
      ints: 99
      ints: 100
      ints: 101
      ints: 103
      ints: 104
      ints: 108
      ints: 109
      ints: 111
      ints: 112
      ints: 115
      ints: 116
      ints: 118
      ints: 119
      ints: 120
      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
      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: 5.0
      floats: 7.0
      floats: 8.0
      floats: 12.0
      floats: 13.0
      floats: 14.0
      floats: 15.0
      floats: 19.0
      floats: 21.0
      floats: 22.0
      floats: 24.0
      floats: 25.0
      floats: 26.0
      floats: 30.0
      floats: 32.0
      floats: 34.0
      floats: 35.0
      floats: 38.0
      floats: 40.0
      floats: 41.0
      floats: 42.0
      floats: 47.0
      floats: 48.0
      floats: 49.0
      floats: 51.0
      floats: 53.0
      floats: 54.0
      floats: 58.0
      floats: 59.0
      floats: 61.0
      floats: 62.0
      floats: 64.0
      floats: 65.0
      floats: 71.0
      floats: 72.0
      floats: 74.0
      floats: 76.0
      floats: 77.0
      floats: 79.0
      floats: 80.0
      floats: 82.0
      floats: 86.0
      floats: 87.0
      floats: 89.0
      floats: 90.0
      floats: 92.0
      floats: 93.0
      floats: 99.0
      floats: 100.0
      floats: 101.0
      floats: 103.0
      floats: 104.0
      floats: 108.0
      floats: 109.0
      floats: 111.0
      floats: 112.0
      floats: 115.0
      floats: 116.0
      floats: 118.0
      floats: 119.0
      floats: 120.0
      type: FLOATS
    }
    domain: "ai.onnx.ml"
  }
  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_sample0_Y0"
    output: "node_sample0_output02"
    name: "node_sample0_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_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: "path_length2_output0"
    name: "path_length2_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: "path_length0_output0"
    output: "path_length0_Y0"
    name: "path_length0_LabelEncoder"
    op_type: "LabelEncoder"
    attribute {
      name: "keys_int64s"
      ints: 7
      ints: 8
      ints: 10
      ints: 11
      ints: 13
      ints: 15
      ints: 16
      ints: 19
      ints: 20
      ints: 21
      ints: 23
      ints: 24
      ints: 27
      ints: 29
      ints: 32
      ints: 33
      ints: 34
      ints: 37
      ints: 39
      ints: 41
      ints: 42
      ints: 44
      ints: 45
      ints: 52
      ints: 53
      ints: 55
      ints: 56
      ints: 59
      ints: 60
      ints: 61
      ints: 65
      ints: 66
      ints: 68
      ints: 69
      ints: 72
      ints: 73
      ints: 75
      ints: 76
      ints: 80
      ints: 82
      ints: 83
      ints: 86
      ints: 87
      ints: 89
      ints: 90
      ints: 92
      ints: 94
      ints: 95
      ints: 97
      ints: 98
      type: INTS
    }
    attribute {
      name: "values_floats"
      floats: 8.0
      floats: 8.0
      floats: 8.0
      floats: 8.0
      floats: 7.0
      floats: 8.0
      floats: 8.0
      floats: 7.0
      floats: 7.0
      floats: 6.0
      floats: 5.0
      floats: 5.0
      floats: 5.0
      floats: 6.0
      floats: 8.0
      floats: 8.0
      floats: 7.0
      floats: 6.0
      floats: 7.0
      floats: 8.0
      floats: 8.0
      floats: 6.0
      floats: 6.0
      floats: 8.0
      floats: 8.0
      floats: 8.0
      floats: 8.0
      floats: 8.0
      floats: 8.0
      floats: 7.0
      floats: 8.0
      floats: 8.0
      floats: 8.0
      floats: 8.0
      floats: 8.0
      floats: 8.0
      floats: 8.0
      floats: 8.0
      floats: 7.0
      floats: 8.0
      floats: 8.0
      floats: 8.0
      floats: 8.0
      floats: 8.0
      floats: 8.0
      floats: 6.0
      floats: 7.0
      floats: 7.0
      floats: 4.0
      floats: 4.0
      type: FLOATS
    }
    domain: "ai.onnx.ml"
  }
  node {
    input: "node_sample0_output02"
    output: "node_sample0_Y02"
    name: "node_sample0_LabelEncoder"
    op_type: "LabelEncoder"
    attribute {
      name: "keys_int64s"
      ints: 7
      ints: 8
      ints: 10
      ints: 11
      ints: 13
      ints: 15
      ints: 16
      ints: 19
      ints: 20
      ints: 21
      ints: 23
      ints: 24
      ints: 27
      ints: 29
      ints: 32
      ints: 33
      ints: 34
      ints: 37
      ints: 39
      ints: 41
      ints: 42
      ints: 44
      ints: 45
      ints: 52
      ints: 53
      ints: 55
      ints: 56
      ints: 59
      ints: 60
      ints: 61
      ints: 65
      ints: 66
      ints: 68
      ints: 69
      ints: 72
      ints: 73
      ints: 75
      ints: 76
      ints: 80
      ints: 82
      ints: 83
      ints: 86
      ints: 87
      ints: 89
      ints: 90
      ints: 92
      ints: 94
      ints: 95
      ints: 97
      ints: 98
      type: INTS
    }
    attribute {
      name: "values_floats"
      floats: 1.0
      floats: 7.0
      floats: 2.0
      floats: 1.0
      floats: 1.0
      floats: 2.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 2.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 3.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 3.0
      floats: 1.0
      floats: 9.0
      floats: 1.0
      floats: 1.0
      floats: 2.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 3.0
      floats: 1.0
      floats: 3.0
      floats: 1.0
      floats: 2.0
      floats: 3.0
      floats: 1.0
      floats: 5.0
      floats: 1.0
      floats: 4.0
      floats: 4.0
      floats: 8.0
      floats: 5.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      type: FLOATS
    }
    domain: "ai.onnx.ml"
  }
  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_sample1_output02"
    output: "node_sample1_Y02"
    name: "node_sample1_LabelEncoder"
    op_type: "LabelEncoder"
    attribute {
      name: "keys_int64s"
      ints: 5
      ints: 6
      ints: 7
      ints: 12
      ints: 13
      ints: 14
      ints: 17
      ints: 18
      ints: 20
      ints: 21
      ints: 25
      ints: 26
      ints: 28
      ints: 29
      ints: 31
      ints: 32
      ints: 35
      ints: 37
      ints: 40
      ints: 41
      ints: 42
      ints: 47
      ints: 48
      ints: 50
      ints: 51
      ints: 53
      ints: 55
      ints: 56
      ints: 57
      ints: 60
      ints: 65
      ints: 66
      ints: 67
      ints: 70
      ints: 71
      ints: 72
      ints: 75
      ints: 76
      ints: 78
      ints: 79
      ints: 82
      ints: 86
      ints: 87
      ints: 88
      ints: 90
      ints: 92
      ints: 93
      ints: 94
      type: INTS
    }
    attribute {
      name: "values_floats"
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 3.0
      floats: 3.0
      floats: 1.0
      floats: 6.0
      floats: 2.0
      floats: 2.0
      floats: 5.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 4.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 6.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 20.0
      floats: 4.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 4.0
      floats: 3.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 3.0
      floats: 1.0
      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: 5
      ints: 6
      ints: 7
      ints: 12
      ints: 13
      ints: 14
      ints: 17
      ints: 18
      ints: 20
      ints: 21
      ints: 25
      ints: 26
      ints: 28
      ints: 29
      ints: 31
      ints: 32
      ints: 35
      ints: 37
      ints: 40
      ints: 41
      ints: 42
      ints: 47
      ints: 48
      ints: 50
      ints: 51
      ints: 53
      ints: 55
      ints: 56
      ints: 57
      ints: 60
      ints: 65
      ints: 66
      ints: 67
      ints: 70
      ints: 71
      ints: 72
      ints: 75
      ints: 76
      ints: 78
      ints: 79
      ints: 82
      ints: 86
      ints: 87
      ints: 88
      ints: 90
      ints: 92
      ints: 93
      ints: 94
      type: INTS
    }
    attribute {
      name: "values_floats"
      floats: 6.0
      floats: 6.0
      floats: 5.0
      floats: 8.0
      floats: 8.0
      floats: 7.0
      floats: 8.0
      floats: 8.0
      floats: 8.0
      floats: 8.0
      floats: 8.0
      floats: 8.0
      floats: 8.0
      floats: 8.0
      floats: 7.0
      floats: 7.0
      floats: 5.0
      floats: 6.0
      floats: 8.0
      floats: 8.0
      floats: 7.0
      floats: 8.0
      floats: 8.0
      floats: 8.0
      floats: 8.0
      floats: 7.0
      floats: 8.0
      floats: 8.0
      floats: 5.0
      floats: 4.0
      floats: 8.0
      floats: 8.0
      floats: 7.0
      floats: 8.0
      floats: 8.0
      floats: 7.0
      floats: 7.0
      floats: 7.0
      floats: 7.0
      floats: 7.0
      floats: 5.0
      floats: 8.0
      floats: 8.0
      floats: 7.0
      floats: 7.0
      floats: 8.0
      floats: 8.0
      floats: 4.0
      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: 5
      ints: 7
      ints: 8
      ints: 12
      ints: 13
      ints: 14
      ints: 15
      ints: 19
      ints: 21
      ints: 22
      ints: 24
      ints: 25
      ints: 26
      ints: 30
      ints: 32
      ints: 34
      ints: 35
      ints: 38
      ints: 40
      ints: 41
      ints: 42
      ints: 47
      ints: 48
      ints: 49
      ints: 51
      ints: 53
      ints: 54
      ints: 58
      ints: 59
      ints: 61
      ints: 62
      ints: 64
      ints: 65
      ints: 71
      ints: 72
      ints: 74
      ints: 76
      ints: 77
      ints: 79
      ints: 80
      ints: 82
      ints: 86
      ints: 87
      ints: 89
      ints: 90
      ints: 92
      ints: 93
      ints: 99
      ints: 100
      ints: 101
      ints: 103
      ints: 104
      ints: 108
      ints: 109
      ints: 111
      ints: 112
      ints: 115
      ints: 116
      ints: 118
      ints: 119
      ints: 120
      type: INTS
    }
    attribute {
      name: "values_floats"
      floats: 6.0
      floats: 7.0
      floats: 7.0
      floats: 8.0
      floats: 8.0
      floats: 7.0
      floats: 6.0
      floats: 7.0
      floats: 8.0
      floats: 8.0
      floats: 7.0
      floats: 7.0
      floats: 5.0
      floats: 6.0
      floats: 7.0
      floats: 8.0
      floats: 8.0
      floats: 7.0
      floats: 8.0
      floats: 8.0
      floats: 6.0
      floats: 8.0
      floats: 8.0
      floats: 7.0
      floats: 7.0
      floats: 8.0
      floats: 8.0
      floats: 8.0
      floats: 8.0
      floats: 8.0
      floats: 8.0
      floats: 7.0
      floats: 7.0
      floats: 7.0
      floats: 7.0
      floats: 7.0
      floats: 8.0
      floats: 8.0
      floats: 6.0
      floats: 6.0
      floats: 5.0
      floats: 8.0
      floats: 8.0
      floats: 8.0
      floats: 8.0
      floats: 7.0
      floats: 7.0
      floats: 8.0
      floats: 8.0
      floats: 7.0
      floats: 7.0
      floats: 7.0
      floats: 8.0
      floats: 8.0
      floats: 8.0
      floats: 8.0
      floats: 8.0
      floats: 8.0
      floats: 8.0
      floats: 8.0
      floats: 4.0
      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: 5
      ints: 7
      ints: 8
      ints: 12
      ints: 13
      ints: 14
      ints: 15
      ints: 19
      ints: 21
      ints: 22
      ints: 24
      ints: 25
      ints: 26
      ints: 30
      ints: 32
      ints: 34
      ints: 35
      ints: 38
      ints: 40
      ints: 41
      ints: 42
      ints: 47
      ints: 48
      ints: 49
      ints: 51
      ints: 53
      ints: 54
      ints: 58
      ints: 59
      ints: 61
      ints: 62
      ints: 64
      ints: 65
      ints: 71
      ints: 72
      ints: 74
      ints: 76
      ints: 77
      ints: 79
      ints: 80
      ints: 82
      ints: 86
      ints: 87
      ints: 89
      ints: 90
      ints: 92
      ints: 93
      ints: 99
      ints: 100
      ints: 101
      ints: 103
      ints: 104
      ints: 108
      ints: 109
      ints: 111
      ints: 112
      ints: 115
      ints: 116
      ints: 118
      ints: 119
      ints: 120
      type: INTS
    }
    attribute {
      name: "values_floats"
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 2.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 8.0
      floats: 4.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 2.0
      floats: 1.0
      floats: 7.0
      floats: 4.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 12.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 4.0
      floats: 4.0
      floats: 2.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      floats: 1.0
      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_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: "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_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: "node_sample0_reshaped0"
    input: "dec_Powcst"
    output: "plus2_0_C0"
    name: "plus2_0_Greater"
    op_type: "Greater"
    domain: ""
  }
  node {
    input: "node_sample0_reshaped0"
    input: "dec_Powcst"
    output: "eq2_0_C0"
    name: "eq2_0_Equal"
    op_type: "Equal"
    domain: ""
  }
  node {
    input: "node_sample1_reshaped0"
    input: "dec_Powcst"
    output: "eq2_1_C0"
    name: "eq2_1_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: "eq2_2_C0"
    name: "eq2_2_Equal"
    op_type: "Equal"
    domain: ""
  }
  node {
    input: "node_sample2_reshaped0"
    input: "dec_Powcst"
    output: "plus2_2_C0"
    name: "plus2_2_Greater"
    op_type: "Greater"
    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: "eq2_1_C0"
    output: "eq2_1_output0"
    name: "eq2_1_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: "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_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: "plus2_1_output0"
    input: "node_sample1_reshaped0"
    output: "eqp2ps1_C0"
    name: "eqp2ps1_Mul"
    op_type: "Mul"
    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_2_output0"
    input: "node_sample2_reshaped0"
    output: "eqp2ps2_C0"
    name: "eqp2ps2_Mul"
    op_type: "Mul"
    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_Addcst"
    output: "eqp2p_m1_1_C0"
    name: "eqp2p_m1_1_Add"
    op_type: "Add"
    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_Addcst"
    output: "eqp2p_m1_2_C0"
    name: "eqp2p_m1_2_Add"
    op_type: "Add"
    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_max0"
    output: "eqp_log0_output0"
    name: "eqp_log0_Log"
    op_type: "Log"
    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_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_ns0_C01"
    input: "eqp_ns0_Mulcst"
    output: "eqp_ns0_C0"
    name: "eqp_ns0_Mul"
    op_type: "Mul"
    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_max0"
    output: "eqp_log1_output0"
    name: "eqp_log1_Log"
    op_type: "Log"
    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_max0"
    output: "eqp_log2_output0"
    name: "eqp_log2_Log"
    op_type: "Log"
    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: "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_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_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: "avlog0_C01"
    input: "plus2_0_output0"
    output: "avlog0_C0"
    name: "avlog0_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: "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: "path_length0_reshaped0"
    input: "avpl0_C0"
    output: "depth0_C01"
    name: "depth0_Add"
    op_type: "Add"
    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: "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.0
    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.0
    name: "eqp2p_m1_0_Addcst"
  }
  initializer {
    dims: 1
    data_type: 1
    float_data: 1.0
    name: "eqp2p_m1_0_Maxcst"
  }
  initializer {
    dims: 1
    data_type: 1
    float_data: 0.5772156715393066
    name: "eqp_log0_Addcst"
  }
  initializer {
    dims: 1
    data_type: 1
    float_data: 0.0
    name: "eqp2p_m1_0_Maxcst1"
  }
  initializer {
    dims: 1
    data_type: 1
    float_data: -2.0
    name: "eqp_ns0_Mulcst"
  }
  initializer {
    dims: 1
    dims: 1
    data_type: 1
    float_data: 25.094013214111328
    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: "ai.onnx.ml"
  version: 2
}
opset_import {
  domain: ""
  version: 17
}

The last line shows the opsets. Let’s extract it.

domains = onx.opset_import
for dom in domains:
    print(f"domain: {dom.domain!r}, version: {dom.version!r}")
domain: 'ai.onnx.ml', version: 2
domain: '', version: 17

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(1, onnx_opset_version() + 1):
    try:
        onx = to_onnx(model, X[:1].astype(numpy.float32), target_opset=opset)
    except RuntimeError as e:
        print(f'target: {opset!r} error: {e!r}')
        continue
    nodes = len(onx.graph.node)
    print('target: %r --> %s %d' % (opset, get_domain_opset(onx), nodes))
target: 1 error: RuntimeError("Operator 'OnnxReshape_5': requested version 1 < 5 schema version.")
target: 2 error: RuntimeError("Operator 'OnnxReshape_5': requested version 2 < 5 schema version.")
target: 3 error: RuntimeError("Operator 'OnnxReshape_5': requested version 3 < 5 schema version.")
target: 4 error: RuntimeError("Operator 'OnnxReshape_5': requested version 4 < 5 schema version.")
target: 5 --> {'ai.onnx.ml': 2, '': 5} 91
target: 6 --> {'ai.onnx.ml': 2, '': 6} 91
target: 7 --> {'': 7, 'ai.onnx.ml': 2} 91
target: 8 --> {'ai.onnx.ml': 2, '': 8} 91
target: 9 --> {'ai.onnx.ml': 2, '': 9} 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 --> {'ai.onnx.ml': 2, '': 15} 91
target: 16 --> {'ai.onnx.ml': 2, '': 16} 91
target: 17 --> {'ai.onnx.ml': 2, '': 17} 91
somewhere/workspace/onnxcustom/onnxcustom_UT_39_std/_venv/lib/python3.9/site-packages/skl2onnx/common/_topology.py:1405: UserWarning: Parameter target_opset 18 > 17 is higher than the the latest tested version.
  warnings.warn(
target: 18 error: RuntimeError("The model is using version 18 of domain '' not supported yet by this library. You need to specify target_opset={'': 17}.")

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, 3):
        tops = {'': opset, 'ai.onnx.ml': opset_ml}
        try:
            onx = to_onnx(
                model, X[:1].astype(numpy.float32), target_opset=tops)
        except RuntimeError as e:
            print(f'target: {opset!r} error: {e!r}')
            continue
        nodes = len(onx.graph.node)
        print('target: %r --> %s %d' % (opset, get_domain_opset(onx), nodes))
target: 9 error: RuntimeError("This converter requires at least opset 2 for domain 'ai.onnx.ml'.")
target: 9 --> {'ai.onnx.ml': 2, '': 9} 91
target: 10 error: RuntimeError("This converter requires at least opset 2 for domain 'ai.onnx.ml'.")
target: 10 --> {'ai.onnx.ml': 2, '': 10} 91
target: 11 error: RuntimeError("This converter requires at least opset 2 for domain 'ai.onnx.ml'.")
target: 11 --> {'ai.onnx.ml': 2, '': 11} 91
target: 12 error: RuntimeError("This converter requires at least opset 2 for domain 'ai.onnx.ml'.")
target: 12 --> {'': 12, 'ai.onnx.ml': 2} 91
target: 13 error: RuntimeError("This converter requires at least opset 2 for domain 'ai.onnx.ml'.")
target: 13 --> {'': 13, 'ai.onnx.ml': 2} 91
target: 14 error: RuntimeError("This converter requires at least opset 2 for domain 'ai.onnx.ml'.")
target: 14 --> {'': 14, 'ai.onnx.ml': 2} 91
target: 15 error: RuntimeError("This converter requires at least opset 2 for domain 'ai.onnx.ml'.")
target: 15 --> {'ai.onnx.ml': 2, '': 15} 91
target: 16 error: RuntimeError("This converter requires at least opset 2 for domain 'ai.onnx.ml'.")
target: 16 --> {'ai.onnx.ml': 2, '': 16} 91
target: 17 error: RuntimeError("This converter requires at least opset 2 for domain 'ai.onnx.ml'.")
target: 17 --> {'ai.onnx.ml': 2, '': 17} 91
somewhere/workspace/onnxcustom/onnxcustom_UT_39_std/_venv/lib/python3.9/site-packages/skl2onnx/common/_topology.py:1405: UserWarning: Parameter target_opset 18 > 17 is higher than the the latest tested version.
  warnings.warn(
target: 18 error: RuntimeError("This converter requires at least opset 2 for domain 'ai.onnx.ml'.")
target: 18 error: RuntimeError("The model is using version 18 of domain '' not supported yet by this library. You need to specify target_opset={'': 17}.")

Total running time of the script: ( 0 minutes 18.966 seconds)

Gallery generated by Sphinx-Gallery