onnx-mlir/docs/Dialects/mlonnx.md

23 KiB

mlonnx.ArrayFeatureExtractor (MLONNXArrayFeatureExtractorOp)

ONNX ArrayFeatureExtractor operation

"Select elements of the input tensor based on the indices passed.
" " The indices are applied to the last axes of the tensor."

Operands:

Operand Description
X memref of any type values or tensor of any type values
Y memref of any type values or tensor of any type values

Results:

Result Description
Z memref of any type values or tensor of any type values

mlonnx.Binarizer (MLONNXBinarizerOp)

ONNX Binarizer operation

"Maps the values of the input tensor to either 0 or 1, element-wise, based on the outcome of a comparison against a threshold value."

Attributes:

Attribute MLIR Type Description
threshold FloatAttr 32-bit float attribute

Operands:

Operand Description
X tensor of 32-bit float or 64-bit float or 64-bit signless integer or 32-bit signless integer values or memref of 32-bit float or 64-bit float or 64-bit signless integer or 32-bit signless integer values

Results:

Result Description
Y tensor of 32-bit float or 64-bit float or 64-bit signless integer or 32-bit signless integer values or memref of 32-bit float or 64-bit float or 64-bit signless integer or 32-bit signless integer values

mlonnx.CastMap (MLONNXCastMapOp)

ONNX CastMap operation

"Converts a map to a tensor.
The map key must be an int64 and the values will be ordered" " in ascending order based on this key.
The operator supports dense packing or sparse packing." " If using sparse packing, the key cannot exceed the max_map-1 value."

Attributes:

Attribute MLIR Type Description
cast_to StringAttr string attribute
map_form StringAttr string attribute
max_map IntegerAttr 64-bit signless integer attribute

Operands:

Operand Description
X memref of any type values or tensor of any type values

Results:

Result Description
Y memref of any type values or tensor of any type values

mlonnx.CategoryMapper (MLONNXCategoryMapperOp)

ONNX CategoryMapper operation

"Converts strings to integers and vice versa.
" " Two sequences of equal length are used to map between integers and strings," " with strings and integers at the same index detailing the mapping.
" " Each operator converts either integers to strings or strings to integers, depending " " on which default value attribute is provided. Only one default value attribute" " should be defined.
" " If the string default value is set, it will convert integers to strings." " If the int default value is set, it will convert strings to integers."

Attributes:

Attribute MLIR Type Description
cats_int64s ArrayAttr 64-bit integer array attribute
cats_strings ArrayAttr string array attribute
default_int64 IntegerAttr 64-bit signless integer attribute
default_string StringAttr string attribute

Operands:

Operand Description
X memref of any type values or tensor of any type values

Results:

Result Description
Y memref of any type values or tensor of any type values

mlonnx.DictVectorizer (MLONNXDictVectorizerOp)

ONNX DictVectorizer operation

"Uses an index mapping to convert a dictionary to an array.
" " Given a dictionary, each key is looked up in the vocabulary attribute corresponding to" " the key type. The index into the vocabulary array at which the key is found is then" " used to index the output 1-D tensor 'Y' and insert into it the value found in the dictionary 'X'.
" " The key type of the input map must correspond to the element type of the defined vocabulary attribute." " Therefore, the output array will be equal in length to the index mapping vector parameter." " All keys in the input dictionary must be present in the index mapping vector." " For each item in the input dictionary, insert its value in the output array." " Any keys not present in the input dictionary, will be zero in the output array.
" " For example: if the string_vocabulary parameter is set to [\"a\", \"c\", \"b\", \"z\"]," " then an input of {\"a\": 4, \"c\": 8} will produce an output of [4, 8, 0, 0]." " "

Attributes:

Attribute MLIR Type Description
int64_vocabulary ArrayAttr 64-bit integer array attribute
string_vocabulary ArrayAttr string array attribute

Operands:

Operand Description
X memref of any type values or tensor of any type values

Results:

Result Description
Y memref of any type values or tensor of any type values

mlonnx.FeatureVectorizer (MLONNXFeatureVectorizerOp)

ONNX FeatureVectorizer operation

"Concatenates input tensors into one continuous output.
" " All input shapes are 2-D and are concatenated along the second dimention. 1-D tensors are treated as [1,C]." " Inputs are copied to the output maintaining the order of the input arguments.
" " All inputs must be integers or floats, while the output will be all floating point values."

Attributes:

Attribute MLIR Type Description
inputdimensions ArrayAttr 64-bit integer array attribute

Operands:

Operand Description
X tensor of 32-bit signless integer or 64-bit signless integer or 32-bit float or 64-bit float values or memref of 32-bit signless integer or 64-bit signless integer or 32-bit float or 64-bit float values

Results:

Result Description
Y memref of any type values or tensor of any type values

mlonnx.Imputer (MLONNXImputerOp)

ONNX Imputer operation

"Replaces inputs that equal one value with another, leaving all other elements alone.
" " This operator is typically used to replace missing values in situations where they have a canonical" " representation, such as -1, 0, NaN, or some extreme value.
" " One and only one of imputed_value_floats or imputed_value_int64s should be defined -- floats if the input tensor" " holds floats, integers if the input tensor holds integers. The imputed values must all fit within the" " width of the tensor element type. One and only one of the replaced_value_float or replaced_value_int64 should be defined," " which one depends on whether floats or integers are being processed.
" " The imputed_value attribute length can be 1 element, or it can have one element per input feature.
In other words, if the input tensor has the shape [*,F], then the length of the attribute array may be 1 or F. If it is 1, then it is broadcast along the last dimension and applied to each feature."

Attributes:

Attribute MLIR Type Description
imputed_value_floats ArrayAttr 32-bit float array attribute
imputed_value_int64s ArrayAttr 64-bit integer array attribute
replaced_value_float FloatAttr 32-bit float attribute
replaced_value_int64 IntegerAttr 64-bit signless integer attribute

Operands:

Operand Description
X tensor of 32-bit float or 64-bit float or 64-bit signless integer or 32-bit signless integer values or memref of 32-bit float or 64-bit float or 64-bit signless integer or 32-bit signless integer values

Results:

Result Description
Y tensor of 32-bit float or 64-bit float or 64-bit signless integer or 32-bit signless integer values or memref of 32-bit float or 64-bit float or 64-bit signless integer or 32-bit signless integer values

mlonnx.LabelEncoder (MLONNXLabelEncoderOp)

ONNX LabelEncoder operation

"Maps each element in the input tensor to another value.
" " The mapping is determined by the two parallel attributes, 'keys_' and" " 'values_' attribute. The i-th value in the specified 'keys_' attribute" " would be mapped to the i-th value in the specified 'values_' attribute. It" " implies that input's element type and the element type of the specified" " 'keys_' should be identical while the output type is identical to the" " specified 'values_' attribute. If an input element can not be found in the" " specified 'keys_' attribute, the 'default_' that matches the specified" " 'values_' attribute may be used as its output value.
" " Let's consider an example which maps a string tensor to an integer tensor." " Assume and 'keys_strings' is ["Amy", "Sally"], 'values_int64s' is [5, 6]," " and 'default_int64' is '-1'. The input ["Dori", "Amy", "Amy", "Sally"," " "Sally"] would be mapped to [-1, 5, 5, 6, 6].
" " Since this operator is an one-to-one mapping, its input and output shapes" " are the same. Notice that only one of 'keys_
'/'values_' can be set.
" " For key look-up, bit-wise comparison is used so even a float NaN can be" " mapped to a value in 'values_
' attribute.
"

Attributes:

Attribute MLIR Type Description
default_float FloatAttr 32-bit float attribute
default_int64 IntegerAttr 64-bit signless integer attribute
default_string StringAttr string attribute
keys_floats ArrayAttr 32-bit float array attribute
keys_int64s ArrayAttr 64-bit integer array attribute
keys_strings ArrayAttr string array attribute
values_floats ArrayAttr 32-bit float array attribute
values_int64s ArrayAttr 64-bit integer array attribute
values_strings ArrayAttr string array attribute

Operands:

Operand Description
X memref of any type values or tensor of any type values

Results:

Result Description
Y memref of any type values or tensor of any type values

mlonnx.LinearClassifier (MLONNXLinearClassifierOp)

ONNX LinearClassifier operation

"Linear classifier"

Attributes:

Attribute MLIR Type Description
classlabels_ints ArrayAttr 64-bit integer array attribute
classlabels_strings ArrayAttr string array attribute
coefficients ArrayAttr 32-bit float array attribute
intercepts ArrayAttr 32-bit float array attribute
multi_class IntegerAttr 64-bit signless integer attribute
post_transform StringAttr string attribute

Operands:

Operand Description
X tensor of 32-bit float or 64-bit float or 64-bit signless integer or 32-bit signless integer values or memref of 32-bit float or 64-bit float or 64-bit signless integer or 32-bit signless integer values

Results:

Result Description
Y memref of any type values or tensor of any type values
Z memref of any type values or tensor of any type values

mlonnx.LinearRegressor (MLONNXLinearRegressorOp)

ONNX LinearRegressor operation

"Generalized linear regression evaluation.
" " If targets is set to 1 (default) then univariate regression is performed.
" " If targets is set to M then M sets of coefficients must be passed in as a sequence" " and M results will be output for each input n in N.
" " The coefficients array is of length n, and the coefficients for each target are contiguous." " Intercepts are optional but if provided must match the number of targets."

Attributes:

Attribute MLIR Type Description
coefficients ArrayAttr 32-bit float array attribute
intercepts ArrayAttr 32-bit float array attribute
post_transform StringAttr string attribute
targets IntegerAttr 64-bit signless integer attribute

Operands:

Operand Description
X tensor of 32-bit float or 64-bit float or 64-bit signless integer or 32-bit signless integer values or memref of 32-bit float or 64-bit float or 64-bit signless integer or 32-bit signless integer values

Results:

Result Description
Y memref of any type values or tensor of any type values

mlonnx.Normalizer (MLONNXNormalizerOp)

ONNX Normalizer operation

"Normalize the input. There are three normalization modes, which have the corresponding formulas," " defined using element-wise infix operators '/' and '^' and tensor-wide functions 'max' and 'sum':
" "
" " Max: Y = X / max(X)
" " L1: Y = X / sum(X)
" " L2: Y = sqrt(X^2 / sum(X^2)}
" " In all modes, if the divisor is zero, Y == X." "
" " For batches, that is, [N,C] tensors, normalization is done along the C axis. In other words, each row" " of the batch is normalized independently."

Attributes:

Attribute MLIR Type Description
norm StringAttr string attribute

Operands:

Operand Description
X tensor of 32-bit float or 64-bit float or 64-bit signless integer or 32-bit signless integer values or memref of 32-bit float or 64-bit float or 64-bit signless integer or 32-bit signless integer values

Results:

Result Description
Y memref of any type values or tensor of any type values

mlonnx.OneHotEncoder (MLONNXOneHotEncoderOp)

ONNX OneHotEncoder operation

"Replace each input element with an array of ones and zeros, where a single" " one is placed at the index of the category that was passed in. The total category count " " will determine the size of the extra dimension of the output array Y.
" " For example, if we pass a tensor with a single value of 4, and a category count of 8, " " the output will be a tensor with [0,0,0,0,1,0,0,0].
" " This operator assumes every input feature is from the same set of categories.
" " If the input is a tensor of float, int32, or double, the data will be cast" " to integers and the cats_int64s category list will be used for the lookups."

Attributes:

Attribute MLIR Type Description
cats_int64s ArrayAttr 64-bit integer array attribute
cats_strings ArrayAttr string array attribute
zeros IntegerAttr 64-bit signless integer attribute

Operands:

Operand Description
X memref of any type values or tensor of any type values

Results:

Result Description
Y memref of any type values or tensor of any type values

mlonnx.SVMClassifier (MLONNXSVMClassifierOp)

ONNX SVMClassifier operation

"Support Vector Machine classifier"

Attributes:

Attribute MLIR Type Description
classlabels_ints ArrayAttr 64-bit integer array attribute
classlabels_strings ArrayAttr string array attribute
coefficients ArrayAttr 32-bit float array attribute
kernel_params ArrayAttr 32-bit float array attribute
kernel_type StringAttr string attribute
post_transform StringAttr string attribute
prob_a ArrayAttr 32-bit float array attribute
prob_b ArrayAttr 32-bit float array attribute
rho ArrayAttr 32-bit float array attribute
support_vectors ArrayAttr 32-bit float array attribute
vectors_per_class ArrayAttr 64-bit integer array attribute

Operands:

Operand Description
X tensor of 32-bit float or 64-bit float or 64-bit signless integer or 32-bit signless integer values or memref of 32-bit float or 64-bit float or 64-bit signless integer or 32-bit signless integer values

Results:

Result Description
Y memref of any type values or tensor of any type values
Z memref of any type values or tensor of any type values

mlonnx.SVMRegressor (MLONNXSVMRegressorOp)

ONNX SVMRegressor operation

"Support Vector Machine regression prediction and one-class SVM anomaly detection."

Attributes:

Attribute MLIR Type Description
coefficients ArrayAttr 32-bit float array attribute
kernel_params ArrayAttr 32-bit float array attribute
kernel_type StringAttr string attribute
n_supports IntegerAttr 64-bit signless integer attribute
one_class IntegerAttr 64-bit signless integer attribute
post_transform StringAttr string attribute
rho ArrayAttr 32-bit float array attribute
support_vectors ArrayAttr 32-bit float array attribute

Operands:

Operand Description
X tensor of 32-bit float or 64-bit float or 64-bit signless integer or 32-bit signless integer values or memref of 32-bit float or 64-bit float or 64-bit signless integer or 32-bit signless integer values

Results:

Result Description
Y memref of any type values or tensor of any type values

mlonnx.Scaler (MLONNXScalerOp)

ONNX Scaler operation

"Rescale input data, for example to standardize features by removing the mean and scaling to unit variance."

Attributes:

Attribute MLIR Type Description
offset ArrayAttr 32-bit float array attribute
scale ArrayAttr 32-bit float array attribute

Operands:

Operand Description
X tensor of 32-bit float or 64-bit float or 64-bit signless integer or 32-bit signless integer values or memref of 32-bit float or 64-bit float or 64-bit signless integer or 32-bit signless integer values

Results:

Result Description
Y memref of any type values or tensor of any type values

mlonnx.TreeEnsembleClassifier (MLONNXTreeEnsembleClassifierOp)

ONNX TreeEnsembleClassifier operation

"Tree Ensemble classifier. Returns the top class for each of N inputs.
" " The attributes named 'nodes_X' form a sequence of tuples, associated by " " index into the sequences, which must all be of equal length. These tuples" " define the nodes.
" " Similarly, all fields prefixed with 'class_' are tuples of votes at the leaves." " A leaf may have multiple votes, where each vote is weighted by" " the associated class_weights index.
" " One and only one of classlabels_strings or classlabels_int64s" " will be defined. The class_ids are indices into this list."

Attributes:

Attribute MLIR Type Description
base_values ArrayAttr 32-bit float array attribute
class_ids ArrayAttr 64-bit integer array attribute
class_nodeids ArrayAttr 64-bit integer array attribute
class_treeids ArrayAttr 64-bit integer array attribute
class_weights ArrayAttr 32-bit float array attribute
classlabels_int64s ArrayAttr 64-bit integer array attribute
classlabels_strings ArrayAttr string array attribute
nodes_falsenodeids ArrayAttr 64-bit integer array attribute
nodes_featureids ArrayAttr 64-bit integer array attribute
nodes_hitrates ArrayAttr 32-bit float array attribute
nodes_missing_value_tracks_true ArrayAttr 64-bit integer array attribute
nodes_modes ArrayAttr string array attribute
nodes_nodeids ArrayAttr 64-bit integer array attribute
nodes_treeids ArrayAttr 64-bit integer array attribute
nodes_truenodeids ArrayAttr 64-bit integer array attribute
nodes_values ArrayAttr 32-bit float array attribute
post_transform StringAttr string attribute

Operands:

Operand Description
X tensor of 32-bit float or 64-bit float or 64-bit signless integer or 32-bit signless integer values or memref of 32-bit float or 64-bit float or 64-bit signless integer or 32-bit signless integer values

Results:

Result Description
Y memref of any type values or tensor of any type values
Z memref of any type values or tensor of any type values

mlonnx.TreeEnsembleRegressor (MLONNXTreeEnsembleRegressorOp)

ONNX TreeEnsembleRegressor operation

"Tree Ensemble regressor. Returns the regressed values for each input in N.
" " All args with nodes_ are fields of a tuple of tree nodes, and" " it is assumed they are the same length, and an index i will decode the" " tuple across these inputs. Each node id can appear only once" " for each tree id.
" " All fields prefixed with target_ are tuples of votes at the leaves.
" " A leaf may have multiple votes, where each vote is weighted by" " the associated target_weights index.
" " All trees must have their node ids start at 0 and increment by 1.
" " Mode enum is BRANCH_LEQ, BRANCH_LT, BRANCH_GTE, BRANCH_GT, BRANCH_EQ, BRANCH_NEQ, LEAF"

Attributes:

Attribute MLIR Type Description
aggregate_function StringAttr string attribute
base_values ArrayAttr 32-bit float array attribute
n_targets IntegerAttr 64-bit signless integer attribute
nodes_falsenodeids ArrayAttr 64-bit integer array attribute
nodes_featureids ArrayAttr 64-bit integer array attribute
nodes_hitrates ArrayAttr 32-bit float array attribute
nodes_missing_value_tracks_true ArrayAttr 64-bit integer array attribute
nodes_modes ArrayAttr string array attribute
nodes_nodeids ArrayAttr 64-bit integer array attribute
nodes_treeids ArrayAttr 64-bit integer array attribute
nodes_truenodeids ArrayAttr 64-bit integer array attribute
nodes_values ArrayAttr 32-bit float array attribute
post_transform StringAttr string attribute
target_ids ArrayAttr 64-bit integer array attribute
target_nodeids ArrayAttr 64-bit integer array attribute
target_treeids ArrayAttr 64-bit integer array attribute
target_weights ArrayAttr 32-bit float array attribute

Operands:

Operand Description
X tensor of 32-bit float or 64-bit float or 64-bit signless integer or 32-bit signless integer values or memref of 32-bit float or 64-bit float or 64-bit signless integer or 32-bit signless integer values

Results:

Result Description
Y memref of any type values or tensor of any type values

mlonnx.ZipMap (MLONNXZipMapOp)

ONNX ZipMap operation

"Creates a map from the input and the attributes.
" " The values are provided by the input tensor, while the keys are specified by the attributes." " Must provide keys in either classlabels_strings or classlabels_int64s (but not both).
" " The columns of the tensor correspond one-by-one to the keys specified by the attributes. There must be as many columns as keys.
"

Attributes:

Attribute MLIR Type Description
classlabels_int64s ArrayAttr 64-bit integer array attribute
classlabels_strings ArrayAttr string array attribute

Operands:

Operand Description
X memref of any type values or tensor of any type values

Results:

Result Description
Z memref of any type values or tensor of any type values