From feb4dbb77b5802fec53c9c8bb24ba0eee259d871 Mon Sep 17 00:00:00 2001 From: BruceDai Date: Fri, 16 Jan 2026 16:58:44 +0800 Subject: [PATCH 1/9] rebase and fix conflict --- index.bs | 678 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 664 insertions(+), 14 deletions(-) diff --git a/index.bs b/index.bs index d0d3ba49..5544faf8 100644 --- a/index.bs +++ b/index.bs @@ -2261,18 +2261,24 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] + [=/minimum allowed data types=] [=/allowed ranks=] + [=/minimum allowed ranks=] {{input}} [=/any data type|any=] + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int32"}} 1 to [=/any rank|N=] + 1 to 5 *output* {{MLOperandDataType/"int32"}}, {{MLOperandDataType/"int64"}} + {{MLOperandDataType/"int32"}} [=/any rank|N=] + 1 to 5 @@ -2389,38 +2395,52 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] + [=/minimum allowed data types=] [=/allowed ranks=] + [=/minimum allowed ranks=] {{input}} {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} 1 to [=/any rank|N=] + 3 to 5 {{mean}} [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + 1 1 {{variance}} [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + 1 1 {{MLBatchNormalizationOptions/scale}} [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + 1 1 {{MLBatchNormalizationOptions/bias}} [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + 1 1 *output* [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} [=/same rank as|same as=] {{input}} + 3 to 5 @@ -2527,18 +2547,24 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] + [=/minimum allowed data types=] [=/allowed ranks=] + [=/minimum allowed ranks=] {{input}} [=/any data type|any=] + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int32"}}, {{MLOperandDataType/"int8"}}, {{MLOperandDataType/"uint8"}} [=/any rank|N=] + 0 to 5 *output* [=/any data type|any=] + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int32"}}, {{MLOperandDataType/"int8"}}, {{MLOperandDataType/"uint8"}} [=/same rank as|same as=] {{input}} + 0 to 5 @@ -2668,18 +2694,24 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] + [=/minimum allowed data types=] [=/allowed ranks=] + [=/minimum allowed ranks=] {{input}} [=/any data type|any=] + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} [=/any rank|N=] + 0 to 5 *output* [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} [=/same rank as|same as=] {{input}} + 0 to 5 @@ -2774,18 +2806,24 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] + [=/minimum allowed data types=] [=/allowed ranks=] + [=/minimum allowed ranks=] {{inputs}}'s [=list/items=] [=/any data type|any=] + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int32"}} 1 to [=/any rank|N=] + 1 to 5 *output* [=/same type as|same as=] {{inputs}}'s [=list/items=] + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int32"}} [=/same rank as|same as=] {{inputs}}'s [=list/items=] + 1 to 5 @@ -2939,27 +2977,37 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] + [=/minimum allowed data types=] [=/allowed ranks=] + [=/minimum allowed ranks=] {{input}} {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + 4 4 {{filter}} [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + 4 4 {{MLConv2dOptions/bias}} [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + 1 1 *output* [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + 4 4 @@ -3184,27 +3232,37 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] + [=/minimum allowed data types=] [=/allowed ranks=] + [=/minimum allowed ranks=] {{input}} {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + 4 4 {{filter}} [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + 4 4 {{MLConv2dOptions/bias}} [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + 1 1 *output* [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + 4 4 @@ -3328,18 +3386,24 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] + [=/minimum allowed data types=] [=/allowed ranks=] + [=/minimum allowed ranks=] {{input}} {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int32"}}, {{MLOperandDataType/"uint32"}}, {{MLOperandDataType/"int64"}}, {{MLOperandDataType/"uint64"}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int32"}} 1 to [=/any rank|N=] + 1 to 5 *output* [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int32"}} [=/same rank as|same as=] {{input}} + 1 to 5 @@ -3435,29 +3499,71 @@ partial dictionary MLOpSupportLimits { - *pow*: Compute the values of the values of the first input tensor to the power of the values of the second input tensor, element-wise. - - +
Tensor limits for element-wise binary options
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Tensor limits for {{MLGraphBuilder/add()}}/{{MLGraphBuilder/sub()}}/{{MLGraphBuilder/mul()}}/{{MLGraphBuilder/div()}}/{{MLGraphBuilder/max()}}/{{MLGraphBuilder/min()}}
operand[=/allowed data types=][=/minimum allowed data types=][=/allowed ranks=][=/minimum allowed ranks=]
{{a}}[=/any data type|any=]{{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int32"}}[=/any rank|N=]0 to 5
{{b}}[=/same type as|same as=] {{a}}{{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int32"}}[=/any rank|N=]0 to 5
*output*[=/same type as|same as=] {{a}}{{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int32"}}[=/any rank|N=]0 to 5
+ + + + + + + + + + +
Tensor limits for {{MLGraphBuilder/pow()}}
operand [=/allowed data types=][=/minimum allowed data types=] [=/allowed ranks=][=/minimum allowed ranks=]
{{a}} [=/any data type|any=]{{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int32"}} [=/any rank|N=]0 to 4
{{b}} [=/same type as|same as=] {{a}}{{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int32"}} [=/any rank|N=]0 to 4
*output* [=/same type as|same as=] {{a}}{{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int32"}} [=/any rank|N=]0 to 4
@@ -3622,32 +3728,127 @@ partial dictionary MLOpSupportLimits { **Returns:** an {{MLOperand}}. The output tensor that contains the result of element-wise comparison of the two input tensors. - - +
Tensor limits for element-wise logical options
+ + + - + + + + + + +
Tensor limits for {{MLGraphBuilder/equal()}}/{{MLGraphBuilder/notEqual()}}/{{MLGraphBuilder/greater()}}/{{MLGraphBuilder/greaterOrEqual()}}/{{MLGraphBuilder/lesser()}}/{{MLGraphBuilder/lesserOrEqual()}}
operand [=/allowed data types=][=/minimum allowed data types=] [=/allowed ranks=][=/minimum allowed ranks=]
{{a}}specified as part of operation steps[=/any data type|any=]{{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int32"}} [=/any rank|N=]0 to 4
{{b}} [=/same type as|same as=] {{a}}{{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int32"}} [=/any rank|N=]0 to 4
*output* {{MLOperandDataType/"uint8"}}{{MLOperandDataType/"uint8"}} [=/any rank|N=]0 to 4
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Tensor limits for {{MLGraphBuilder/logicalNot()}}
operand[=/allowed data types=][=/minimum allowed data types=][=/allowed ranks=][=/minimum allowed ranks=]
{{a}}{{MLOperandDataType/"uint8"}}{{MLOperandDataType/"uint8"}}[=/any rank|N=]0 to 5
*output*{{MLOperandDataType/"uint8"}}{{MLOperandDataType/"uint8"}}[=/any rank|N=]0 to 5
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Tensor limits for {{MLGraphBuilder/logicalAnd()}}/{{MLGraphBuilder/logicalOr()}}/{{MLGraphBuilder/logicalXor()}}
operand[=/allowed data types=][=/minimum allowed data types=][=/allowed ranks=][=/minimum allowed ranks=]
{{a}}{{MLOperandDataType/"uint8"}}{{MLOperandDataType/"uint8"}}[=/any rank|N=]0 to 4
{{b}}[=/same type as|same as=] {{a}}{{MLOperandDataType/"uint8"}}[=/any rank|N=]0 to 4
*output*{{MLOperandDataType/"uint8"}}{{MLOperandDataType/"uint8"}}[=/any rank|N=]0 to 4
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Tensor limits for {{MLGraphBuilder/isNaN()}}/{{MLGraphBuilder/isInfinite()}}
operand[=/allowed data types=][=/minimum allowed data types=][=/allowed ranks=][=/minimum allowed ranks=]
{{a}}[=/any data type|any=]{{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}[=/any rank|N=]0 to 4
*output*{{MLOperandDataType/"uint8"}}{{MLOperandDataType/"uint8"}}[=/any rank|N=]0 to 4
{{MLLogicalNotSupportLimits}} has the following members:
@@ -3871,27 +4072,86 @@ partial dictionary MLOpSupportLimits { tensor is the same as the shape of input tensor. - - +
Tensor limits for element-wise unary options
+ + + + + + +
Tensor limits for {{MLGraphBuilder/abs()}}/{{MLGraphBuilder/identity()}}/{{MLGraphBuilder/neg()}}
operand [=/allowed data types=][=/minimum allowed data types=] [=/allowed ranks=][=/minimum allowed ranks=]
{{input}} specified as part of operation steps{{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int32"}} [=/any rank|N=]0 to 5
*output* [=/same type as|same as=] {{input}}{{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int32"}} [=/same rank as|same as=] {{input}}0 to 5
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Tensor limits for {{MLGraphBuilder/ceil()}}/{{MLGraphBuilder/cos()}}/{{MLGraphBuilder/erf()}}/{{MLGraphBuilder/exp()}}/{{MLGraphBuilder/floor()}}/{{MLGraphBuilder/log()}}/{{MLGraphBuilder/reciprocal()}}/{{MLGraphBuilder/roundEven()}}/{{MLGraphBuilder/sin()}}/{{MLGraphBuilder/sqrt()}}/{{MLGraphBuilder/tan()}}
operand[=/allowed data types=][=/minimum allowed data types=][=/allowed ranks=][=/minimum allowed ranks=]
{{input}}specified as part of operation steps{{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}[=/any rank|N=]0 to 5
*output*[=/same type as|same as=] {{input}}{{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}[=/same rank as|same as=] {{input}}0 to 5
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Tensor limits for {{MLGraphBuilder/sign()}}
operand[=/allowed data types=][=/minimum allowed data types=][=/allowed ranks=][=/minimum allowed ranks=]
{{input}}{{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int64"}}, {{MLOperandDataType/"int32"}}, {{MLOperandDataType/"int8"}}[=/any rank|N=]0
*output*[=/same type as|same as=] {{input}}[=/same rank as|same as=] {{input}}0
{{MLOpSupportLimits}} has the following members for element-wise unary operations:
@@ -4133,28 +4393,38 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] + [=/minimum allowed data types=] [=/allowed ranks=] + [=/minimum allowed ranks=] {{input}} {{MLOperandDataType/"uint8"}}, {{MLOperandDataType/"int8"}}, {{MLOperandDataType/"uint32"}}, {{MLOperandDataType/"int32"}} + {{MLOperandDataType/"uint8"}}, {{MLOperandDataType/"int8"}}, {{MLOperandDataType/"int32"}} [=/any rank|N=] + 0 to 5 {{scale}} {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + {{MLOperandDataType/"float32"}} [=/same rank as|same as=] {{input}} + 0 to 5 {{zeroPoint}} [=/same type as|same as=] {{input}} + {{MLOperandDataType/"uint8"}}, {{MLOperandDataType/"int8"}}, {{MLOperandDataType/"int32"}} [=/same rank as|same as=] {{input}} + 0 to 5 *output* [=/same type as|same as=] {{scale}} + {{MLOperandDataType/"float32"}} [=/same rank as|same as=] {{input}} + 0 to 5 @@ -4307,28 +4577,38 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] + [=/minimum allowed data types=] [=/allowed ranks=] + [=/minimum allowed ranks=] {{input}} {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + {{MLOperandDataType/"float32"}} [=/any rank|N=] + 0 to 5 {{scale}} [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}} [=/same rank as|same as=] {{input}} + 0 to 5 {{zeroPoint}} {{MLOperandDataType/"uint8"}}, {{MLOperandDataType/"int8"}}, {{MLOperandDataType/"uint32"}}, {{MLOperandDataType/"int32"}} + {{MLOperandDataType/"uint8"}}, {{MLOperandDataType/"int8"}} [=/same rank as|same as=] {{input}} + 0 to 5 *output* [=/same type as|same as=] {{zeroPoint}} + {{MLOperandDataType/"uint8"}}, {{MLOperandDataType/"int8"}} [=/same rank as|same as=] {{input}} + 0 to 5 @@ -4426,18 +4706,24 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] + [=/minimum allowed data types=] [=/allowed ranks=] + [=/minimum allowed ranks=] {{input}} {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} [=/any rank|N=] + 0 to 5 *output* [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} [=/same rank as|same as=] {{input}} + 0 to 5 @@ -4511,18 +4797,24 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] + [=/minimum allowed data types=] [=/allowed ranks=] + [=/minimum allowed ranks=] {{input}} [=/any data type|any=] + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int32"}} [=/any rank|N=] + 0 to 5 *output* [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int32"}} [=/any rank|N=] + 0 to 5 @@ -4601,23 +4893,31 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] + [=/minimum allowed data types=] [=/allowed ranks=] + [=/minimum allowed ranks=] {{input}} [=/any data type|any=] + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int32"}}, {{MLOperandDataType/"int8"}}, {{MLOperandDataType/"uint8"}} 1 to [=/any rank|N=] + 1 to 5 {{indices}} {{MLOperandDataType/"int32"}}, {{MLOperandDataType/"uint32"}}, {{MLOperandDataType/"int64"}} + {{MLOperandDataType/"int32"}} [=/any rank|N=] + 0 to 5 *output* [=/same type as|same as=] {{input}} - [=/any rank|N=] + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int32"}}, {{MLOperandDataType/"int8"}}, {{MLOperandDataType/"uint8"}} + 1 to [=/any rank|N=] + 1 to 5 @@ -4765,23 +5065,31 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] + [=/minimum allowed data types=] [=/allowed ranks=] + [=/minimum allowed ranks=] {{input}} [=/any data type|any=] + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int32"}}, {{MLOperandDataType/"int8"}}, {{MLOperandDataType/"uint8"}} 1 to [=/any rank|N=] + 1 to 5 {{indices}} {{MLOperandDataType/"int32"}}, {{MLOperandDataType/"uint32"}}, {{MLOperandDataType/"int64"}} + {{MLOperandDataType/"int32"}} [=/same rank as|same as=] {{input}} + 1 to 5 *output* [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int32"}}, {{MLOperandDataType/"int8"}}, {{MLOperandDataType/"uint8"}} [=/same rank as|same as=] {{input}} + 1 to 5 @@ -4928,23 +5236,31 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] + [=/minimum allowed data types=] [=/allowed ranks=] + [=/minimum allowed ranks=] {{input}} [=/any data type|any=] + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int32"}}, {{MLOperandDataType/"int8"}}, {{MLOperandDataType/"uint8"}} 1 to [=/any rank|N=] + 1 to 5 {{indices}} {{MLOperandDataType/"int32"}}, {{MLOperandDataType/"uint32"}}, {{MLOperandDataType/"int64"}} + {{MLOperandDataType/"int32"}} 1 to [=/any rank|N=] + 1 to 5 *output* [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int32"}}, {{MLOperandDataType/"int8"}}, {{MLOperandDataType/"uint8"}} [=/any rank|N=] + 0 to 5 @@ -5120,18 +5436,24 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] + [=/minimum allowed data types=] [=/allowed ranks=] + [=/minimum allowed ranks=] {{input}} {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} [=/any rank|N=] + 0 to 5 *output* [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} [=/same rank as|same as=] {{input}} + 0 to 5 @@ -5241,27 +5563,37 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] + [=/minimum allowed data types=] [=/allowed ranks=] + [=/minimum allowed ranks=] {{a}} {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + 2 2 {{b}} [=/same type as|same as=] {{a}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + 2 2 {{MLGemmOptions/c}} [=/same type as|same as=] {{a}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + 0 to 2 0 to 2 *output* [=/same type as|same as=] {{a}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + 2 2 @@ -5449,47 +5781,65 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] + [=/minimum allowed data types=] [=/allowed ranks=] + [=/minimum allowed ranks=] {{input}} {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + 3 3 {{weight}} [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + 3 3 {{recurrentWeight}} [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + 3 3 {{MLGruOptions/bias}} [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + 2 2 {{MLGruOptions/recurrentBias}} [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + 2 2 {{MLGruOptions/initialHiddenState}} [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + 3 3 *outputs[0]* [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + 3 3 *outputs[1]* if {{MLGruOptions/returnSequence}} is true [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + 4 4 @@ -5779,37 +6129,51 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] + [=/minimum allowed data types=] [=/allowed ranks=] + [=/minimum allowed ranks=] {{input}} {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + 2 2 {{weight}} [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + 2 2 {{recurrentWeight}} [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + 2 2 {{MLGruCellOptions/bias}} [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + 1 1 {{MLGruCellOptions/recurrentBias}} [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + 1 1 *output* [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + 2 2 @@ -6026,18 +6390,24 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] + [=/minimum allowed data types=] [=/allowed ranks=] + [=/minimum allowed ranks=] + 0 to 5 {{input}} {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} [=/any rank|N=] *output* [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} [=/same rank as|same as=] {{input}} + 0 to 5 @@ -6111,18 +6481,24 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] + [=/minimum allowed data types=] [=/allowed ranks=] + [=/minimum allowed ranks=] {{input}} {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} [=/any rank|N=] + 0 to 5 *output* [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} [=/same rank as|same as=] {{input}} + 0 to 5 @@ -6232,27 +6608,37 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] + [=/minimum allowed data types=] [=/allowed ranks=] + [=/minimum allowed ranks=] {{input}} {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + 4 4 {{MLInstanceNormalizationOptions/scale}} [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + 1 1 {{MLInstanceNormalizationOptions/bias}} [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + 1 1 *output* [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + 4 4 @@ -6385,28 +6771,38 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] + [=/minimum allowed data types=] [=/allowed ranks=] + [=/minimum allowed ranks=] {{input}} {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} [=/any rank|N=] + 0 to 5 {{MLLayerNormalizationOptions/scale}} [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} [=/any rank|N=] + 0 to 5 {{MLLayerNormalizationOptions/bias}} [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} [=/any rank|N=] + 0 to 5 *output* [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} [=/same rank as|same as=] {{input}} + 0 to 5 @@ -6520,18 +6916,24 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] + [=/minimum allowed data types=] [=/allowed ranks=] + [=/minimum allowed ranks=] {{input}} {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} [=/any rank|N=] + 0 to 5 *output* [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} [=/same rank as|same as=] {{input}} + 0 to 5 @@ -6618,18 +7020,24 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] + [=/minimum allowed data types=] [=/allowed ranks=] + [=/minimum allowed ranks=] {{input}} {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} [=/any rank|N=] + 0 to 5 *output* [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} [=/same rank as|same as=] {{input}} + 0 to 5 @@ -6779,62 +7187,86 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] + [=/minimum allowed data types=] [=/allowed ranks=] + [=/minimum allowed ranks=] {{input}} {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + 3 3 {{weight}} [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + 3 3 {{recurrentWeight}} [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + 3 3 {{MLLstmOptions/bias}} [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + 2 2 {{MLLstmOptions/recurrentBias}} [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + 2 2 {{MLLstmOptions/peepholeWeight}} [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + 2 2 {{MLLstmOptions/initialHiddenState}} [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + 3 3 {{MLLstmOptions/initialCellState}} [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + 3 3 *outputs[0]* [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + 3 3 *outputs[1]* [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + 3 3 *outputs[2]* if {{MLLstmOptions/returnSequence}} is true [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + 4 4 @@ -7177,57 +7609,79 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] + [=/minimum allowed data types=] [=/allowed ranks=] + [=/minimum allowed ranks=] {{input}} {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + 2 2 {{weight}} [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + 2 2 {{recurrentWeight}} [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + 2 2 {{hiddenState}} [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + 2 2 {{cellState}} [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + 2 2 {{MLLstmCellOptions/bias}} [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + 1 1 {{MLLstmCellOptions/recurrentBias}} [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + 1 1 {{MLLstmCellOptions/peepholeWeight}} [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + 1 1 *outputs[0]* [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + 2 2 *outputs[1]* [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + 2 2 @@ -7473,23 +7927,31 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] + [=/minimum allowed data types=] [=/allowed ranks=] + [=/minimum allowed ranks=] {{a}} {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} 2 to [=/any rank|N=] + 2 to 5 {{b}} [=/same type as|same as=] {{a}} - 2 or [=/any rank|N=] + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + 2 to [=/any rank|N=] + 2 to 5 *output* [=/same type as|same as=] {{a}} - 2 or [=/any rank|N=] + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + 2 to [=/any rank|N=] + 2 to 5 @@ -7586,7 +8048,9 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] + [=/minimum allowed data types=] [=/allowed ranks=] + [=/minimum allowed ranks=] @@ -7776,27 +8240,60 @@ partial dictionary MLOpSupportLimits { `output size = ceil(1 + (input size - filter size + beginning padding + ending padding) / stride)` - - +
Tensor limits for pooling operations
+ + + + + + +
Tensor limits for {{MLGraphBuilder/averagePool2d()}}/{{MLGraphBuilder/maxPool2d()}}
operand [=/allowed data types=][=/minimum allowed data types=] [=/allowed ranks=][=/minimum allowed ranks=]
{{input}} specified as part of operation steps{{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}4 4
*output* [=/same type as|same as=] {{input}}{{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}4 4
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Tensor limits for {{MLGraphBuilder/l2Pool2d()}}
operand[=/allowed data types=][=/minimum allowed data types=][=/allowed ranks=][=/minimum allowed ranks=]
{{input}}specified as part of operation steps4
*output*[=/same type as|same as=] {{input}}4
+ {{MLOpSupportLimits}} has the following members for pooling operations:
: averagePool2d @@ -7957,22 +8454,30 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] + [=/minimum allowed data types=] [=/allowed ranks=] + [=/minimum allowed ranks=] {{input}} {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int64"}}, {{MLOperandDataType/"int32"}}, {{MLOperandDataType/"int8"}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} [=/any rank|N=] + 0 to 4 {{slope}} [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} [=/any rank|N=] + 0 to 4 *output* [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} [=/any rank|N=] + 0 to 4 @@ -8088,24 +8593,57 @@ partial dictionary MLOpSupportLimits { **Returns:** an {{MLOperand}}. The output N-D tensor of [=MLOperand/rank=] in the range 0 to {{MLGraphBuilder/reduceL1(input, options)/input}}'s [=MLOperand/rank=], inclusive, depending on {{MLReduceOptions/axes}} and {{MLReduceOptions/keepDimensions}}. If the input operand is a scalar, the reduction function is applied to the scalar value, and the output is also a scalar. - - +
Tensor limits for reduction-operations
+ + + + + + + + +
Tensor limits for {{MLGraphBuilder/reduceL1()}}/{{MLGraphBuilder/reduceMax()}}/{{MLGraphBuilder/reduceMin()}}/{{MLGraphBuilder/reduceSum()}}/{{MLGraphBuilder/reduceSumSquare()}}
operand [=/allowed data types=][=/minimum allowed data types=] [=/allowed ranks=][=/minimum allowed ranks=]
{{input}} specified as part of operation steps{{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int32"}} [=/any rank|N=]0 to 5
*output* [=/same type as|same as=] {{input}}{{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int32"}} [=/any rank|N=]0 to 5
+ + + + + + + + + + + + + + + + + + + + + + + + +
Tensor limits for {{MLGraphBuilder/reduceL2()}}/{{MLGraphBuilder/reduceLogSum()}}/{{MLGraphBuilder/reduceLogSumExp()}}/{{MLGraphBuilder/reduceMean()}}/{{MLGraphBuilder/reduceProduct()}}
operand[=/allowed data types=][=/minimum allowed data types=][=/allowed ranks=][=/minimum allowed ranks=]
{{input}}specified as part of operation steps{{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}[=/any rank|N=]0 to 5
*output*[=/same type as|same as=] {{input}}{{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}[=/any rank|N=]0 to 5
@@ -8312,18 +8850,24 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] + [=/minimum allowed data types=] [=/allowed ranks=] + [=/minimum allowed ranks=] {{input}} {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int64"}}, {{MLOperandDataType/"int32"}}, {{MLOperandDataType/"int8"}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} [=/any rank|N=] + 0 to 5 *output* [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} [=/same rank as|same as=] {{input}} + 0 to 5 @@ -8463,17 +9007,23 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] + [=/minimum allowed data types=] [=/allowed ranks=] + [=/minimum allowed ranks=] {{input}} {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"uint8"}}, {{MLOperandDataType/"int8"}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + 4 4 *output* [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + 4 4 @@ -8574,18 +9124,24 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] + [=/minimum allowed data types=] [=/allowed ranks=] + [=/minimum allowed ranks=] {{input}} [=/any data type|any=] + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int32"}}, {{MLOperandDataType/"int8"}}, {{MLOperandDataType/"uint8"}} [=/any rank|N=] + 0 to 5 *output* [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int32"}}, {{MLOperandDataType/"int8"}}, {{MLOperandDataType/"uint8"}} [=/any rank|N=] + 0 to 5 @@ -8657,18 +9213,24 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] + [=/minimum allowed data types=] [=/allowed ranks=] + [=/minimum allowed ranks=] {{input}} [=/any data type|any=] + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int32"}} [=/any rank|N=] + 0 to 5 *output* [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int32"}} [=/same rank as|same as=] {{input}} + 0 to 5 @@ -8747,28 +9309,38 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] + [=/minimum allowed data types=] [=/allowed ranks=] + [=/minimum allowed ranks=] {{input}} [=/any data type|any=] + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int32"}} 1 to [=/any rank|N=] + 1 to 5 {{indices}} {{MLOperandDataType/"int32"}}, {{MLOperandDataType/"uint32"}}, {{MLOperandDataType/"int64"}} + {{MLOperandDataType/"int32"}} [=/same rank as|same as=] {{input}} + 1 to 5 {{updates}} [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int32"}} [=/same rank as|same as=] {{input}} + 1 to 5 *output* [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int32"}} [=/same rank as|same as=] {{input}} + 1 to 5 @@ -8960,28 +9532,37 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] + [=/minimum allowed data types=] [=/allowed ranks=] + [=/minimum allowed ranks=] {{input}} [=/any data type|any=] + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int32"}} 1 to [=/any rank|N=] + 1 to 5 {{indices}} {{MLOperandDataType/"int32"}}, {{MLOperandDataType/"uint32"}}, {{MLOperandDataType/"int64"}} 1 to [=/any rank|N=] + 1 to 5 {{updates}} [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int32"}} [=/any rank|N=] + 0 to 5 *output* [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int32"}} 1 to [=/any rank|N=] + 1 to 5 @@ -9165,18 +9746,23 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] + [=/minimum allowed data types=] [=/allowed ranks=] + [=/minimum allowed ranks=] {{input}} {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} [=/any rank|N=] + 0 to 5 *output* [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} [=/same rank as|same as=] {{input}} + 0 to 5 @@ -9264,18 +9850,24 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] + [=/minimum allowed data types=] [=/allowed ranks=] + [=/minimum allowed ranks=] {{input}} [=/any data type|any=] + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int32"}}, {{MLOperandDataType/"int8"}}, {{MLOperandDataType/"uint8"}} [=/any rank|N=] + 1 to 5 *output* [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int32"}}, {{MLOperandDataType/"int8"}}, {{MLOperandDataType/"uint8"}} [=/same rank as|same as=] {{input}} + 1 to 5 @@ -9354,18 +9946,24 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] + [=/minimum allowed data types=] [=/allowed ranks=] + [=/minimum allowed ranks=] {{input}} {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} 1 to [=/any rank|N=] + 1 to 5 *output* [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} [=/same rank as|same as=] {{input}} + 1 to 5 @@ -9442,18 +10040,24 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] + [=/minimum allowed data types=] [=/allowed ranks=] + [=/minimum allowed ranks=] {{input}} {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} [=/any rank|N=] + 0 to 5 *output* [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} [=/same rank as|same as=] {{input}} + 0 to 5 @@ -9535,18 +10139,24 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] + [=/minimum allowed data types=] [=/allowed ranks=] + [=/minimum allowed ranks=] {{input}} {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} [=/any rank|N=] + 0 to 5 *output* [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} [=/same rank as|same as=] {{input}} + 0 to 5 @@ -9618,18 +10228,24 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] + [=/minimum allowed data types=] [=/allowed ranks=] + [=/minimum allowed ranks=] {{input}} [=/any data type|any=] + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int32"}} 1 to [=/any rank|N=] + 1 to 5 *outputs* [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int32"}} [=/same rank as|same as=] {{input}} + 1 to 5 @@ -9734,18 +10350,24 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] + [=/minimum allowed data types=] [=/allowed ranks=] + [=/minimum allowed ranks=] {{input}} {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} [=/any rank|N=] + 0 to 5 *output* [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} [=/same rank as|same as=] {{input}} + 0 to 5 @@ -9820,18 +10442,24 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] + [=/minimum allowed data types=] [=/allowed ranks=] + [=/minimum allowed ranks=] {{input}} [=/any data type|any=] + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int32"}} [=/any rank|N=] + 0 to 5 *output* [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int32"}} [=/same rank as|same as=] {{input}} + 0 to 5 @@ -9905,18 +10533,24 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] + [=/minimum allowed data types=] [=/allowed ranks=] + [=/minimum allowed ranks=] {{input}} [=/any data type|any=] + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int32"}} [=/any rank|N=] + 0 to 5 *output* [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int32"}} [=/same rank as|same as=] {{input}} + 0 to 5 @@ -9988,18 +10622,24 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] + [=/minimum allowed data types=] [=/allowed ranks=] + [=/minimum allowed ranks=] {{input}} [=/any data type|any=] + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int32"}} 2 to [=/any rank|N=] + 2 to 5 *output* [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int32"}} [=/same rank as|same as=] {{input}} + 2 to 5 @@ -10128,28 +10768,38 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] + [=/minimum allowed data types=] [=/allowed ranks=] + [=/minimum allowed ranks=] {{condition}} {{MLOperandDataType/"uint8"}} + {{MLOperandDataType/"uint8"}} [=/any rank|N=] + 0 to 5 {{trueValue}} [=/any data type|any=] + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int32"}} [=/any rank|N=] + 0 to 5 {{falseValue}} [=/same type as|same as=] {{trueValue}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int32"}} [=/any rank|N=] + 0 to 5 *output* [=/same type as|same as=] {{trueValue}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int32"}} [=/any rank|N=] + 0 to 5 From db44ac5016f89be489288eeb46991d0506bf3d2d Mon Sep 17 00:00:00 2001 From: BruceDai Date: Thu, 11 Dec 2025 17:04:06 +0800 Subject: [PATCH 2/9] correct minimum details for hardSigmoid/pad/scatterND/sigmoid ops --- index.bs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/index.bs b/index.bs index 5544faf8..cde25384 100644 --- a/index.bs +++ b/index.bs @@ -6393,7 +6393,6 @@ partial dictionary MLOpSupportLimits { [=/minimum allowed data types=] [=/allowed ranks=] [=/minimum allowed ranks=] - 0 to 5 @@ -6401,6 +6400,7 @@ partial dictionary MLOpSupportLimits { {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} [=/any rank|N=] + 0 to 5 *output* @@ -8056,12 +8056,16 @@ partial dictionary MLOpSupportLimits { {{input}} [=/any data type|any=] + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} [=/any rank|N=] + 1 to 5 *output* [=/same type as|same as=] {{input}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} [=/same rank as|same as=] {{input}} + 1 to 5 @@ -9547,6 +9551,7 @@ partial dictionary MLOpSupportLimits { {{indices}} {{MLOperandDataType/"int32"}}, {{MLOperandDataType/"uint32"}}, {{MLOperandDataType/"int64"}} + {{MLOperandDataType/"int32"}} 1 to [=/any rank|N=] 1 to 5 @@ -9754,6 +9759,7 @@ partial dictionary MLOpSupportLimits { {{input}} {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} [=/any rank|N=] 0 to 5 From 871eaecdf4e23914e35bbc7ef9d2836dceef3642 Mon Sep 17 00:00:00 2001 From: BruceDai Date: Fri, 12 Dec 2025 11:49:21 +0800 Subject: [PATCH 3/9] add dfn refs --- index.bs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.bs b/index.bs index cde25384..3d3442e0 100644 --- a/index.bs +++ b/index.bs @@ -1777,13 +1777,13 @@ The shape [=getter steps=] are to return [=th Since the {{MLOperand/[[builder]]}} object is bound by the {{MLGraphBuilder/constructor()}} constructor to an {{MLContext}} object, an {{MLOperand}} is also always bound to the same {{MLContext}} object. -If an operation supports only a subset of {{MLOperandDataType}}s, the allowed data types for each of the operation's input operands, including both positional arguments and options, are given as either an explicit list of {{MLOperandDataType}}s, or a constraint that the operand's [=MLOperand/dataType=] must be the same as the [=MLOperand/dataType=] of another input operand, or any to allow any {{MLOperandDataType}}. +If an operation supports only a subset of {{MLOperandDataType}}s, the allowed data types for each of the operation's input operands, including both positional arguments and options, are given as either an explicit list of {{MLOperandDataType}}s, or a constraint that the operand's [=MLOperand/dataType=] must be the same as the [=MLOperand/dataType=] of another input operand, or any to allow any {{MLOperandDataType}}. The minimum allowed data types is an intersection data types via {{MLContext/opSupportLimits()}} method across DirectML, TFLite and CoreML backends in Chromium prototype. Implementations may support fewer data types for operands than specified. This can be queried for each operation using the {{MLContext/opSupportLimits()}} method on {{MLContext}} and inspecting the {{MLTensorLimits/dataTypes}} value of the corresponding member for the operation. Issue: Should we specify the subset of data types that must be supported for each operator? -If an operation requires input operands with a particular [=MLOperand/rank=], the allowed ranks for each of the operation's input operands, including both positional arguments and options, are given as an explicit rank (e.g. 1), or N to allow any dimensionality, or the same as another operand. More specific constraints are common, such as when an input operand's shape must be [=/unidirectionally broadcastable=] to or [=/bidirectionally broadcastable=] with another input operand; in these cases, the [=/allowed ranks=] are listed as a range, with specific validation given as steps in the operation. +If an operation requires input operands with a particular [=MLOperand/rank=], the allowed ranks for each of the operation's input operands, including both positional arguments and options, are given as an explicit rank (e.g. 1), or N to allow any dimensionality, or the same as another operand. More specific constraints are common, such as when an input operand's shape must be [=/unidirectionally broadcastable=] to or [=/bidirectionally broadcastable=] with another input operand; in these cases, the [=/allowed ranks=] are listed as a range, with specific validation given as steps in the operation. The minimum allowed ranks is an intersection rank range via {{MLContext/opSupportLimits()}} method across DirectML, TFLite and CoreML backends in Chromium prototype. Implementations may impose a more restricted lower bound and/or upper bound on the [=MLOperand/rank=] of operands than specified. This can be queried for each operation using the {{MLContext/opSupportLimits()}} method on {{MLContext}} and inspecting the {{MLTensorLimits/rankRange}}.{{MLRankRange/min}} and {{MLTensorLimits/rankRange}}.{{MLRankRange/max}} values of the corresponding member for the operation. From a8446cc4b518996c7276b08b7c445e0181368303 Mon Sep 17 00:00:00 2001 From: BruceDai Date: Fri, 12 Dec 2025 13:47:20 +0800 Subject: [PATCH 4/9] updated for dequantizeLinear op to align with latest CL-7244911 --- index.bs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.bs b/index.bs index 3d3442e0..48b8785f 100644 --- a/index.bs +++ b/index.bs @@ -4401,7 +4401,7 @@ partial dictionary MLOpSupportLimits { {{input}} {{MLOperandDataType/"uint8"}}, {{MLOperandDataType/"int8"}}, {{MLOperandDataType/"uint32"}}, {{MLOperandDataType/"int32"}} - {{MLOperandDataType/"uint8"}}, {{MLOperandDataType/"int8"}}, {{MLOperandDataType/"int32"}} + {{MLOperandDataType/"uint8"}}, {{MLOperandDataType/"int8"}} [=/any rank|N=] 0 to 5 From 0ad3771f45b75ec0f246e855fd882b3e8bb2856c Mon Sep 17 00:00:00 2001 From: BruceDai Date: Mon, 15 Dec 2025 10:57:15 +0800 Subject: [PATCH 5/9] address Reilly's suggestions --- index.bs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/index.bs b/index.bs index 48b8785f..626040b8 100644 --- a/index.bs +++ b/index.bs @@ -1777,15 +1777,19 @@ The shape [=getter steps=] are to return [=th Since the {{MLOperand/[[builder]]}} object is bound by the {{MLGraphBuilder/constructor()}} constructor to an {{MLContext}} object, an {{MLOperand}} is also always bound to the same {{MLContext}} object. -If an operation supports only a subset of {{MLOperandDataType}}s, the allowed data types for each of the operation's input operands, including both positional arguments and options, are given as either an explicit list of {{MLOperandDataType}}s, or a constraint that the operand's [=MLOperand/dataType=] must be the same as the [=MLOperand/dataType=] of another input operand, or any to allow any {{MLOperandDataType}}. The minimum allowed data types is an intersection data types via {{MLContext/opSupportLimits()}} method across DirectML, TFLite and CoreML backends in Chromium prototype. +If an operation supports only a subset of {{MLOperandDataType}}s, the allowed data types for each of the operation's input operands, including both positional arguments and options, are given as either an explicit list of {{MLOperandDataType}}s, or a constraint that the operand's [=MLOperand/dataType=] must be the same as the [=MLOperand/dataType=] of another input operand, or any to allow any {{MLOperandDataType}}. -Implementations may support fewer data types for operands than specified. This can be queried for each operation using the {{MLContext/opSupportLimits()}} method on {{MLContext}} and inspecting the {{MLTensorLimits/dataTypes}} value of the corresponding member for the operation. +Implementations MAY support fewer data types for operands than specified, but MUST support at least the specified minimum allowed data types. Support can be queried for each operation using the {{MLContext/opSupportLimits()}} method on {{MLContext}} and inspecting the {{MLTensorLimits/dataTypes}} value of the corresponding member for the operation. + +The set of [=/minimum allowed data types=] has been determined based on implementation experience across a breadth of platforms to ensure that developers can produce interoperable content by designing models to only use these data types. Issue: Should we specify the subset of data types that must be supported for each operator? -If an operation requires input operands with a particular [=MLOperand/rank=], the allowed ranks for each of the operation's input operands, including both positional arguments and options, are given as an explicit rank (e.g. 1), or N to allow any dimensionality, or the same as another operand. More specific constraints are common, such as when an input operand's shape must be [=/unidirectionally broadcastable=] to or [=/bidirectionally broadcastable=] with another input operand; in these cases, the [=/allowed ranks=] are listed as a range, with specific validation given as steps in the operation. The minimum allowed ranks is an intersection rank range via {{MLContext/opSupportLimits()}} method across DirectML, TFLite and CoreML backends in Chromium prototype. +If an operation requires input operands with a particular [=MLOperand/rank=], the allowed ranks for each of the operation's input operands, including both positional arguments and options, are given as an explicit rank (e.g. 1), or N to allow any dimensionality, or the same as another operand. More specific constraints are common, such as when an input operand's shape must be [=/unidirectionally broadcastable=] to or [=/bidirectionally broadcastable=] with another input operand; in these cases, the [=/allowed ranks=] are listed as a range, with specific validation given as steps in the operation. + +Implementations MAY impose a more restricted lower bound and/or upper bound on the [=MLOperand/rank=] of operands than specified, but MUST support at least the specified minimum allowed ranks. Support can be queried for each operation using the {{MLContext/opSupportLimits()}} method on {{MLContext}} and inspecting the {{MLTensorLimits/rankRange}}.{{MLRankRange/min}} and {{MLTensorLimits/rankRange}}.{{MLRankRange/max}} values of the corresponding member for the operation. -Implementations may impose a more restricted lower bound and/or upper bound on the [=MLOperand/rank=] of operands than specified. This can be queried for each operation using the {{MLContext/opSupportLimits()}} method on {{MLContext}} and inspecting the {{MLTensorLimits/rankRange}}.{{MLRankRange/min}} and {{MLTensorLimits/rankRange}}.{{MLRankRange/max}} values of the corresponding member for the operation. +The set of [=/minimum allowed ranks=] has been determined based on implementation experience across a breadth of platforms to ensure that developers can produce interoperable content by designing models to be composed of input operands with only these ranks. {{MLOperatorOptions}} has the following members:
From bd9c073ba2f84d210ce5164fb5cb39fe2251ce35 Mon Sep 17 00:00:00 2001 From: BruceDai Date: Tue, 16 Dec 2025 11:19:16 +0800 Subject: [PATCH 6/9] address Reilly's comments --- index.bs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/index.bs b/index.bs index 626040b8..080105cb 100644 --- a/index.bs +++ b/index.bs @@ -1781,9 +1781,7 @@ If an operation supports only a subset of {{MLOperandDataType}}s, the allow Implementations MAY support fewer data types for operands than specified, but MUST support at least the specified minimum allowed data types. Support can be queried for each operation using the {{MLContext/opSupportLimits()}} method on {{MLContext}} and inspecting the {{MLTensorLimits/dataTypes}} value of the corresponding member for the operation. -The set of [=/minimum allowed data types=] has been determined based on implementation experience across a breadth of platforms to ensure that developers can produce interoperable content by designing models to only use these data types. - -Issue: Should we specify the subset of data types that must be supported for each operator? +The set of [=/minimum allowed data types=] has been determined based on implementation experience across a breadth of platforms to ensure that developers can produce interoperable content by designing models to only use these data types. The Web Platform Tests for this specification use this capability detection mechanism to validate correct behavior for all [=/allowed data types=] but can be passed with only support for the [=/minimum allowed data types=]. If an operation requires input operands with a particular [=MLOperand/rank=], the allowed ranks for each of the operation's input operands, including both positional arguments and options, are given as an explicit rank (e.g. 1), or N to allow any dimensionality, or the same as another operand. More specific constraints are common, such as when an input operand's shape must be [=/unidirectionally broadcastable=] to or [=/bidirectionally broadcastable=] with another input operand; in these cases, the [=/allowed ranks=] are listed as a range, with specific validation given as steps in the operation. From 4a4e58ca5d8ca76b52227eb09ce7a0d572d8e036 Mon Sep 17 00:00:00 2001 From: BruceDai Date: Wed, 17 Dec 2025 17:44:55 +0800 Subject: [PATCH 7/9] update index.bs to address Dwayne's some comments --- index.bs | 256 +++++++++++++++++++++++++++---------------------------- 1 file changed, 128 insertions(+), 128 deletions(-) diff --git a/index.bs b/index.bs index 080105cb..9b5ae63f 100644 --- a/index.bs +++ b/index.bs @@ -1779,15 +1779,15 @@ Since the {{MLOperand/[[builder]]}} object is bound by the {{MLGraphBuilder/cons If an operation supports only a subset of {{MLOperandDataType}}s, the allowed data types for each of the operation's input operands, including both positional arguments and options, are given as either an explicit list of {{MLOperandDataType}}s, or a constraint that the operand's [=MLOperand/dataType=] must be the same as the [=MLOperand/dataType=] of another input operand, or any to allow any {{MLOperandDataType}}. -Implementations MAY support fewer data types for operands than specified, but MUST support at least the specified minimum allowed data types. Support can be queried for each operation using the {{MLContext/opSupportLimits()}} method on {{MLContext}} and inspecting the {{MLTensorLimits/dataTypes}} value of the corresponding member for the operation. +Implementations MAY support fewer data types for operands than specified, but MUST support at least the specified required data types. Support can be queried for each operation using the {{MLContext/opSupportLimits()}} method on {{MLContext}} and inspecting the {{MLTensorLimits/dataTypes}} value of the corresponding member for the operation across DirectML, ONNX Runtime, LiteRT, and CoreML backends in Chromium prototype now. -The set of [=/minimum allowed data types=] has been determined based on implementation experience across a breadth of platforms to ensure that developers can produce interoperable content by designing models to only use these data types. The Web Platform Tests for this specification use this capability detection mechanism to validate correct behavior for all [=/allowed data types=] but can be passed with only support for the [=/minimum allowed data types=]. +The set of [=/required data types=] has been determined based on implementation experience across a breadth of platforms to ensure that developers can produce interoperable content by designing models to only use these data types. The Web Platform Tests for this specification use this capability detection mechanism to validate correct behavior for all [=/allowed data types=] but can be passed with only support for the [=/required data types=]. If an operation requires input operands with a particular [=MLOperand/rank=], the allowed ranks for each of the operation's input operands, including both positional arguments and options, are given as an explicit rank (e.g. 1), or N to allow any dimensionality, or the same as another operand. More specific constraints are common, such as when an input operand's shape must be [=/unidirectionally broadcastable=] to or [=/bidirectionally broadcastable=] with another input operand; in these cases, the [=/allowed ranks=] are listed as a range, with specific validation given as steps in the operation. -Implementations MAY impose a more restricted lower bound and/or upper bound on the [=MLOperand/rank=] of operands than specified, but MUST support at least the specified minimum allowed ranks. Support can be queried for each operation using the {{MLContext/opSupportLimits()}} method on {{MLContext}} and inspecting the {{MLTensorLimits/rankRange}}.{{MLRankRange/min}} and {{MLTensorLimits/rankRange}}.{{MLRankRange/max}} values of the corresponding member for the operation. +Implementations MAY impose a more restricted lower bound and/or upper bound on the [=MLOperand/rank=] of operands than specified, but MUST support at least the specified required ranks. Support can be queried for each operation using the {{MLContext/opSupportLimits()}} method on {{MLContext}} and inspecting the {{MLTensorLimits/rankRange}}.{{MLRankRange/min}} and {{MLTensorLimits/rankRange}}.{{MLRankRange/max}} values of the corresponding member for the operation across DirectML, ONNX Runtime, LiteRT, and CoreML backends in Chromium prototype now. -The set of [=/minimum allowed ranks=] has been determined based on implementation experience across a breadth of platforms to ensure that developers can produce interoperable content by designing models to be composed of input operands with only these ranks. +The set of [=/required ranks=] has been determined based on implementation experience across a breadth of platforms to ensure that developers can produce interoperable content by designing models to be composed of input operands with only these ranks. {{MLOperatorOptions}} has the following members:
@@ -2263,9 +2263,9 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] - [=/minimum allowed data types=] + [=/required data types=] [=/allowed ranks=] - [=/minimum allowed ranks=] + [=/required ranks=] @@ -2397,9 +2397,9 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] - [=/minimum allowed data types=] + [=/required data types=] [=/allowed ranks=] - [=/minimum allowed ranks=] + [=/required ranks=] @@ -2549,9 +2549,9 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] - [=/minimum allowed data types=] + [=/required data types=] [=/allowed ranks=] - [=/minimum allowed ranks=] + [=/required ranks=] @@ -2696,9 +2696,9 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] - [=/minimum allowed data types=] + [=/required data types=] [=/allowed ranks=] - [=/minimum allowed ranks=] + [=/required ranks=] @@ -2808,9 +2808,9 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] - [=/minimum allowed data types=] + [=/required data types=] [=/allowed ranks=] - [=/minimum allowed ranks=] + [=/required ranks=] @@ -2979,9 +2979,9 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] - [=/minimum allowed data types=] + [=/required data types=] [=/allowed ranks=] - [=/minimum allowed ranks=] + [=/required ranks=] @@ -3234,9 +3234,9 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] - [=/minimum allowed data types=] + [=/required data types=] [=/allowed ranks=] - [=/minimum allowed ranks=] + [=/required ranks=] @@ -3388,9 +3388,9 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] - [=/minimum allowed data types=] + [=/required data types=] [=/allowed ranks=] - [=/minimum allowed ranks=] + [=/required ranks=] @@ -3507,9 +3507,9 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] - [=/minimum allowed data types=] + [=/required data types=] [=/allowed ranks=] - [=/minimum allowed ranks=] + [=/required ranks=] @@ -3541,9 +3541,9 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] - [=/minimum allowed data types=] + [=/required data types=] [=/allowed ranks=] - [=/minimum allowed ranks=] + [=/required ranks=] @@ -3736,9 +3736,9 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] - [=/minimum allowed data types=] + [=/required data types=] [=/allowed ranks=] - [=/minimum allowed ranks=] + [=/required ranks=] @@ -3770,9 +3770,9 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] - [=/minimum allowed data types=] + [=/required data types=] [=/allowed ranks=] - [=/minimum allowed ranks=] + [=/required ranks=] @@ -3797,9 +3797,9 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] - [=/minimum allowed data types=] + [=/required data types=] [=/allowed ranks=] - [=/minimum allowed ranks=] + [=/required ranks=] @@ -3831,9 +3831,9 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] - [=/minimum allowed data types=] + [=/required data types=] [=/allowed ranks=] - [=/minimum allowed ranks=] + [=/required ranks=] @@ -4080,9 +4080,9 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] - [=/minimum allowed data types=] + [=/required data types=] [=/allowed ranks=] - [=/minimum allowed ranks=] + [=/required ranks=] @@ -4107,9 +4107,9 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] - [=/minimum allowed data types=] + [=/required data types=] [=/allowed ranks=] - [=/minimum allowed ranks=] + [=/required ranks=] @@ -4134,24 +4134,24 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] - [=/minimum allowed data types=] + [=/required data types=] [=/allowed ranks=] - [=/minimum allowed ranks=] + [=/required ranks=] {{input}} {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int64"}}, {{MLOperandDataType/"int32"}}, {{MLOperandDataType/"int8"}} - + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int32"}} [=/any rank|N=] - 0 + 0 to 5 *output* [=/same type as|same as=] {{input}} - + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int32"}} [=/same rank as|same as=] {{input}} - 0 + 0 to 5 @@ -4395,9 +4395,9 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] - [=/minimum allowed data types=] + [=/required data types=] [=/allowed ranks=] - [=/minimum allowed ranks=] + [=/required ranks=] @@ -4579,9 +4579,9 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] - [=/minimum allowed data types=] + [=/required data types=] [=/allowed ranks=] - [=/minimum allowed ranks=] + [=/required ranks=] @@ -4708,9 +4708,9 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] - [=/minimum allowed data types=] + [=/required data types=] [=/allowed ranks=] - [=/minimum allowed ranks=] + [=/required ranks=] @@ -4799,9 +4799,9 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] - [=/minimum allowed data types=] + [=/required data types=] [=/allowed ranks=] - [=/minimum allowed ranks=] + [=/required ranks=] @@ -4895,9 +4895,9 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] - [=/minimum allowed data types=] + [=/required data types=] [=/allowed ranks=] - [=/minimum allowed ranks=] + [=/required ranks=] @@ -5067,9 +5067,9 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] - [=/minimum allowed data types=] + [=/required data types=] [=/allowed ranks=] - [=/minimum allowed ranks=] + [=/required ranks=] @@ -5238,9 +5238,9 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] - [=/minimum allowed data types=] + [=/required data types=] [=/allowed ranks=] - [=/minimum allowed ranks=] + [=/required ranks=] @@ -5438,9 +5438,9 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] - [=/minimum allowed data types=] + [=/required data types=] [=/allowed ranks=] - [=/minimum allowed ranks=] + [=/required ranks=] @@ -5565,9 +5565,9 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] - [=/minimum allowed data types=] + [=/required data types=] [=/allowed ranks=] - [=/minimum allowed ranks=] + [=/required ranks=] @@ -5783,9 +5783,9 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] - [=/minimum allowed data types=] + [=/required data types=] [=/allowed ranks=] - [=/minimum allowed ranks=] + [=/required ranks=] @@ -6131,9 +6131,9 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] - [=/minimum allowed data types=] + [=/required data types=] [=/allowed ranks=] - [=/minimum allowed ranks=] + [=/required ranks=] @@ -6392,9 +6392,9 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] - [=/minimum allowed data types=] + [=/required data types=] [=/allowed ranks=] - [=/minimum allowed ranks=] + [=/required ranks=] @@ -6483,9 +6483,9 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] - [=/minimum allowed data types=] + [=/required data types=] [=/allowed ranks=] - [=/minimum allowed ranks=] + [=/required ranks=] @@ -6610,9 +6610,9 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] - [=/minimum allowed data types=] + [=/required data types=] [=/allowed ranks=] - [=/minimum allowed ranks=] + [=/required ranks=] @@ -6773,9 +6773,9 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] - [=/minimum allowed data types=] + [=/required data types=] [=/allowed ranks=] - [=/minimum allowed ranks=] + [=/required ranks=] @@ -6918,9 +6918,9 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] - [=/minimum allowed data types=] + [=/required data types=] [=/allowed ranks=] - [=/minimum allowed ranks=] + [=/required ranks=] @@ -7022,9 +7022,9 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] - [=/minimum allowed data types=] + [=/required data types=] [=/allowed ranks=] - [=/minimum allowed ranks=] + [=/required ranks=] @@ -7189,9 +7189,9 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] - [=/minimum allowed data types=] + [=/required data types=] [=/allowed ranks=] - [=/minimum allowed ranks=] + [=/required ranks=] @@ -7611,9 +7611,9 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] - [=/minimum allowed data types=] + [=/required data types=] [=/allowed ranks=] - [=/minimum allowed ranks=] + [=/required ranks=] @@ -7929,9 +7929,9 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] - [=/minimum allowed data types=] + [=/required data types=] [=/allowed ranks=] - [=/minimum allowed ranks=] + [=/required ranks=] @@ -8050,9 +8050,9 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] - [=/minimum allowed data types=] + [=/required data types=] [=/allowed ranks=] - [=/minimum allowed ranks=] + [=/required ranks=] @@ -8252,9 +8252,9 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] - [=/minimum allowed data types=] + [=/required data types=] [=/allowed ranks=] - [=/minimum allowed ranks=] + [=/required ranks=] @@ -8279,9 +8279,9 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] - [=/minimum allowed data types=] + [=/required data types=] [=/allowed ranks=] - [=/minimum allowed ranks=] + [=/required ranks=] @@ -8460,9 +8460,9 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] - [=/minimum allowed data types=] + [=/required data types=] [=/allowed ranks=] - [=/minimum allowed ranks=] + [=/required ranks=] @@ -8605,9 +8605,9 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] - [=/minimum allowed data types=] + [=/required data types=] [=/allowed ranks=] - [=/minimum allowed ranks=] + [=/required ranks=] @@ -8632,9 +8632,9 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] - [=/minimum allowed data types=] + [=/required data types=] [=/allowed ranks=] - [=/minimum allowed ranks=] + [=/required ranks=] @@ -8856,9 +8856,9 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] - [=/minimum allowed data types=] + [=/required data types=] [=/allowed ranks=] - [=/minimum allowed ranks=] + [=/required ranks=] @@ -9013,9 +9013,9 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] - [=/minimum allowed data types=] + [=/required data types=] [=/allowed ranks=] - [=/minimum allowed ranks=] + [=/required ranks=] @@ -9130,9 +9130,9 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] - [=/minimum allowed data types=] + [=/required data types=] [=/allowed ranks=] - [=/minimum allowed ranks=] + [=/required ranks=] @@ -9219,9 +9219,9 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] - [=/minimum allowed data types=] + [=/required data types=] [=/allowed ranks=] - [=/minimum allowed ranks=] + [=/required ranks=] @@ -9315,9 +9315,9 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] - [=/minimum allowed data types=] + [=/required data types=] [=/allowed ranks=] - [=/minimum allowed ranks=] + [=/required ranks=] @@ -9538,9 +9538,9 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] - [=/minimum allowed data types=] + [=/required data types=] [=/allowed ranks=] - [=/minimum allowed ranks=] + [=/required ranks=] @@ -9753,9 +9753,9 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] - [=/minimum allowed data types=] + [=/required data types=] [=/allowed ranks=] - [=/minimum allowed ranks=] + [=/required ranks=] @@ -9858,9 +9858,9 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] - [=/minimum allowed data types=] + [=/required data types=] [=/allowed ranks=] - [=/minimum allowed ranks=] + [=/required ranks=] @@ -9954,9 +9954,9 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] - [=/minimum allowed data types=] + [=/required data types=] [=/allowed ranks=] - [=/minimum allowed ranks=] + [=/required ranks=] @@ -10048,9 +10048,9 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] - [=/minimum allowed data types=] + [=/required data types=] [=/allowed ranks=] - [=/minimum allowed ranks=] + [=/required ranks=] @@ -10147,9 +10147,9 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] - [=/minimum allowed data types=] + [=/required data types=] [=/allowed ranks=] - [=/minimum allowed ranks=] + [=/required ranks=] @@ -10236,9 +10236,9 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] - [=/minimum allowed data types=] + [=/required data types=] [=/allowed ranks=] - [=/minimum allowed ranks=] + [=/required ranks=] @@ -10358,9 +10358,9 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] - [=/minimum allowed data types=] + [=/required data types=] [=/allowed ranks=] - [=/minimum allowed ranks=] + [=/required ranks=] @@ -10450,9 +10450,9 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] - [=/minimum allowed data types=] + [=/required data types=] [=/allowed ranks=] - [=/minimum allowed ranks=] + [=/required ranks=] @@ -10541,9 +10541,9 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] - [=/minimum allowed data types=] + [=/required data types=] [=/allowed ranks=] - [=/minimum allowed ranks=] + [=/required ranks=] @@ -10630,9 +10630,9 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] - [=/minimum allowed data types=] + [=/required data types=] [=/allowed ranks=] - [=/minimum allowed ranks=] + [=/required ranks=] @@ -10776,9 +10776,9 @@ partial dictionary MLOpSupportLimits { operand [=/allowed data types=] - [=/minimum allowed data types=] + [=/required data types=] [=/allowed ranks=] - [=/minimum allowed ranks=] + [=/required ranks=] From 2f9cd761d2eb9f25aaf481637ba10537eaf3410d Mon Sep 17 00:00:00 2001 From: BruceDai Date: Mon, 22 Dec 2025 14:16:49 +0800 Subject: [PATCH 8/9] update index.bs to address Ningxin's comments --- index.bs | 48 ++++++++++++++++++++++++------------------------ 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/index.bs b/index.bs index 9b5ae63f..19601126 100644 --- a/index.bs +++ b/index.bs @@ -2280,7 +2280,7 @@ partial dictionary MLOpSupportLimits { {{MLOperandDataType/"int32"}}, {{MLOperandDataType/"int64"}} {{MLOperandDataType/"int32"}} [=/any rank|N=] - 1 to 5 + 0 to 5 @@ -3501,7 +3501,7 @@ partial dictionary MLOpSupportLimits { - *pow*: Compute the values of the values of the first input tensor to the power of the values of the second input tensor, element-wise. - +
@@ -3535,7 +3535,7 @@ partial dictionary MLOpSupportLimits {
Tensor limits for {{MLGraphBuilder/add()}}/{{MLGraphBuilder/sub()}}/{{MLGraphBuilder/mul()}}/{{MLGraphBuilder/div()}}/{{MLGraphBuilder/max()}}/{{MLGraphBuilder/min()}}
- +
@@ -3730,7 +3730,7 @@ partial dictionary MLOpSupportLimits { **Returns:** an {{MLOperand}}. The output tensor that contains the result of element-wise comparison of the two input tensors. -
Tensor limits for {{MLGraphBuilder/pow()}}
+
@@ -3764,7 +3764,7 @@ partial dictionary MLOpSupportLimits {
Tensor limits for {{MLGraphBuilder/equal()}}/{{MLGraphBuilder/notEqual()}}/{{MLGraphBuilder/greater()}}/{{MLGraphBuilder/greaterOrEqual()}}/{{MLGraphBuilder/lesser()}}/{{MLGraphBuilder/lesserOrEqual()}}
- +
@@ -3791,7 +3791,7 @@ partial dictionary MLOpSupportLimits {
Tensor limits for {{MLGraphBuilder/logicalNot()}}
- +
@@ -3825,7 +3825,7 @@ partial dictionary MLOpSupportLimits {
Tensor limits for {{MLGraphBuilder/logicalAnd()}}/{{MLGraphBuilder/logicalOr()}}/{{MLGraphBuilder/logicalXor()}}
- +
@@ -4074,7 +4074,7 @@ partial dictionary MLOpSupportLimits { tensor is the same as the shape of input tensor. -
Tensor limits for {{MLGraphBuilder/isNaN()}}/{{MLGraphBuilder/isInfinite()}}
+
@@ -4101,7 +4101,7 @@ partial dictionary MLOpSupportLimits {
Tensor limits for {{MLGraphBuilder/abs()}}/{{MLGraphBuilder/identity()}}/{{MLGraphBuilder/neg()}}
- +
@@ -4128,7 +4128,7 @@ partial dictionary MLOpSupportLimits {
Tensor limits for {{MLGraphBuilder/ceil()}}/{{MLGraphBuilder/cos()}}/{{MLGraphBuilder/erf()}}/{{MLGraphBuilder/exp()}}/{{MLGraphBuilder/floor()}}/{{MLGraphBuilder/log()}}/{{MLGraphBuilder/reciprocal()}}/{{MLGraphBuilder/roundEven()}}/{{MLGraphBuilder/sin()}}/{{MLGraphBuilder/sqrt()}}/{{MLGraphBuilder/tan()}}
- +
@@ -4410,7 +4410,7 @@ partial dictionary MLOpSupportLimits { - + @@ -4424,7 +4424,7 @@ partial dictionary MLOpSupportLimits { - + @@ -4587,14 +4587,14 @@ partial dictionary MLOpSupportLimits { - + - + @@ -8060,14 +8060,14 @@ partial dictionary MLOpSupportLimits { - + - +
Tensor limits for {{MLGraphBuilder/sign()}}
{{scale}} {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}{{MLOperandDataType/"float32"}}{{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} [=/same rank as|same as=] {{input}} 0 to 5
*output* [=/same type as|same as=] {{scale}}{{MLOperandDataType/"float32"}}{{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} [=/same rank as|same as=] {{input}} 0 to 5
{{input}} {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}{{MLOperandDataType/"float32"}}{{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} [=/any rank|N=] 0 to 5
{{scale}} [=/same type as|same as=] {{input}}{{MLOperandDataType/"float32"}}{{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} [=/same rank as|same as=] {{input}} 0 to 5
[=/any data type|any=] {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} [=/any rank|N=]1 to 50 to 5
*output* [=/same type as|same as=] {{input}} {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} [=/same rank as|same as=] {{input}}1 to 50 to 5
@@ -8246,7 +8246,7 @@ partial dictionary MLOpSupportLimits { `output size = ceil(1 + (input size - filter size + beginning padding + ending padding) / stride)` - +
@@ -8273,7 +8273,7 @@ partial dictionary MLOpSupportLimits {
Tensor limits for {{MLGraphBuilder/averagePool2d()}}/{{MLGraphBuilder/maxPool2d()}}
- +
@@ -8599,7 +8599,7 @@ partial dictionary MLOpSupportLimits { **Returns:** an {{MLOperand}}. The output N-D tensor of [=MLOperand/rank=] in the range 0 to {{MLGraphBuilder/reduceL1(input, options)/input}}'s [=MLOperand/rank=], inclusive, depending on {{MLReduceOptions/axes}} and {{MLReduceOptions/keepDimensions}}. If the input operand is a scalar, the reduction function is applied to the scalar value, and the output is also a scalar. -
Tensor limits for {{MLGraphBuilder/l2Pool2d()}}
+
@@ -8626,7 +8626,7 @@ partial dictionary MLOpSupportLimits {
Tensor limits for {{MLGraphBuilder/reduceL1()}}/{{MLGraphBuilder/reduceMax()}}/{{MLGraphBuilder/reduceMin()}}/{{MLGraphBuilder/reduceSum()}}/{{MLGraphBuilder/reduceSumSquare()}}
- +
@@ -9868,14 +9868,14 @@ partial dictionary MLOpSupportLimits { - + - +
Tensor limits for {{MLGraphBuilder/reduceL2()}}/{{MLGraphBuilder/reduceLogSum()}}/{{MLGraphBuilder/reduceLogSumExp()}}/{{MLGraphBuilder/reduceMean()}}/{{MLGraphBuilder/reduceProduct()}}
[=/any data type|any=] {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int32"}}, {{MLOperandDataType/"int8"}}, {{MLOperandDataType/"uint8"}} [=/any rank|N=]1 to 50 to 5
*output* [=/same type as|same as=] {{input}} {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int32"}}, {{MLOperandDataType/"int8"}}, {{MLOperandDataType/"uint8"}} [=/same rank as|same as=] {{input}}1 to 50 to 5
@@ -10638,14 +10638,14 @@ partial dictionary MLOpSupportLimits { {{input}} [=/any data type|any=] - {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int32"}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} 2 to [=/any rank|N=] 2 to 5 *output* [=/same type as|same as=] {{input}} - {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int32"}} + {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} [=/same rank as|same as=] {{input}} 2 to 5 From b6b300f3a16e9e5b8fbec71e49cf58e2227ae380 Mon Sep 17 00:00:00 2001 From: BruceDai Date: Fri, 16 Jan 2026 15:58:07 +0800 Subject: [PATCH 9/9] update l2Pool2d and separate tables of listing input data types --- index.bs | 121 ++++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 101 insertions(+), 20 deletions(-) diff --git a/index.bs b/index.bs index 19601126..73a7ef17 100644 --- a/index.bs +++ b/index.bs @@ -4074,8 +4074,8 @@ partial dictionary MLOpSupportLimits { tensor is the same as the shape of input tensor. - - +
Tensor limits for {{MLGraphBuilder/abs()}}/{{MLGraphBuilder/identity()}}/{{MLGraphBuilder/neg()}}
+ @@ -4087,7 +4087,7 @@ partial dictionary MLOpSupportLimits { - + @@ -4114,7 +4114,7 @@ partial dictionary MLOpSupportLimits { - + @@ -4128,6 +4128,33 @@ partial dictionary MLOpSupportLimits {
Tensor limits for {{MLGraphBuilder/abs()}}/{{MLGraphBuilder/neg()}}
operand
{{input}}specified as part of operation steps{{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int64"}}, {{MLOperandDataType/"int32"}}, {{MLOperandDataType/"int8"}} {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int32"}} [=/any rank|N=] 0 to 5
{{input}}specified as part of operation steps{{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} [=/any rank|N=] 0 to 5
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Tensor limits for {{MLGraphBuilder/identity()}}
operand[=/allowed data types=][=/required data types=][=/allowed ranks=][=/required ranks=]
{{input}}[=/any data type|any=]{{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int32"}}[=/any rank|N=]0 to 5
*output*[=/same type as|same as=] {{input}}{{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int32"}}[=/same rank as|same as=] {{input}}0 to 5
+ @@ -8246,8 +8273,8 @@ partial dictionary MLOpSupportLimits { `output size = ceil(1 + (input size - filter size + beginning padding + ending padding) / stride)` -
Tensor limits for {{MLGraphBuilder/sign()}}
- +
Tensor limits for {{MLGraphBuilder/averagePool2d()}}/{{MLGraphBuilder/maxPool2d()}}
+ @@ -8259,7 +8286,7 @@ partial dictionary MLOpSupportLimits { - + @@ -8273,8 +8300,8 @@ partial dictionary MLOpSupportLimits {
Tensor limits for {{MLGraphBuilder/averagePool2d()}}/{{MLGraphBuilder/l2Pool2d()}}
operand
{{input}}specified as part of operation steps{{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} 4 4
- - +
Tensor limits for {{MLGraphBuilder/l2Pool2d()}}
+ @@ -8286,17 +8313,17 @@ partial dictionary MLOpSupportLimits { - - + + + - - + + -
Tensor limits for {{MLGraphBuilder/maxPool2d()}}
operand
{{input}}specified as part of operation steps[=/any data type|any=]{{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}4 4
*output* [=/same type as|same as=] {{input}}{{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}4 4
@@ -8599,8 +8626,8 @@ partial dictionary MLOpSupportLimits { **Returns:** an {{MLOperand}}. The output N-D tensor of [=MLOperand/rank=] in the range 0 to {{MLGraphBuilder/reduceL1(input, options)/input}}'s [=MLOperand/rank=], inclusive, depending on {{MLReduceOptions/axes}} and {{MLReduceOptions/keepDimensions}}. If the input operand is a scalar, the reduction function is applied to the scalar value, and the output is also a scalar. - - +
Tensor limits for {{MLGraphBuilder/reduceL1()}}/{{MLGraphBuilder/reduceMax()}}/{{MLGraphBuilder/reduceMin()}}/{{MLGraphBuilder/reduceSum()}}/{{MLGraphBuilder/reduceSumSquare()}}
+ @@ -8612,7 +8639,7 @@ partial dictionary MLOpSupportLimits { - + @@ -8626,8 +8653,8 @@ partial dictionary MLOpSupportLimits {
Tensor limits for {{MLGraphBuilder/reduceL1()}}/{{MLGraphBuilder/reduceSum()}}/{{MLGraphBuilder/reduceSumSquare()}}
operand
{{input}}specified as part of operation steps{{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int32"}}, {{MLOperandDataType/"uint32"}}, {{MLOperandDataType/"int64"}}, {{MLOperandDataType/"uint64"}} {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int32"}} [=/any rank|N=] 0 to 5
- - +
Tensor limits for {{MLGraphBuilder/reduceL2()}}/{{MLGraphBuilder/reduceLogSum()}}/{{MLGraphBuilder/reduceLogSumExp()}}/{{MLGraphBuilder/reduceMean()}}/{{MLGraphBuilder/reduceProduct()}}
+ @@ -8639,7 +8666,61 @@ partial dictionary MLOpSupportLimits { - + + + + + + + + + + + + +
Tensor limits for {{MLGraphBuilder/reduceL2()}}/{{MLGraphBuilder/reduceLogSum()}}/{{MLGraphBuilder/reduceLogSumExp()}}/{{MLGraphBuilder/reduceMean()}}
operand
{{input}}specified as part of operation steps{{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}{{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}[=/any rank|N=]0 to 5
*output*[=/same type as|same as=] {{input}}{{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}[=/any rank|N=]0 to 5
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Tensor limits for {{MLGraphBuilder/reduceMax()}}/{{MLGraphBuilder/reduceMin()}}
operand[=/allowed data types=][=/required data types=][=/allowed ranks=][=/required ranks=]
{{input}}[=/any data type|any=]{{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int32"}}[=/any rank|N=]0 to 5
*output*[=/same type as|same as=] {{input}}{{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int32"}}[=/any rank|N=]0 to 5
+ + + + + + + + + + + + + + +
Tensor limits for {{MLGraphBuilder/reduceProduct()}}
operand[=/allowed data types=][=/required data types=][=/allowed ranks=][=/required ranks=]
{{input}}{{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}}, {{MLOperandDataType/"int32"}}, {{MLOperandDataType/"uint32"}}, {{MLOperandDataType/"int64"}}, {{MLOperandDataType/"uint64"}} {{MLOperandDataType/"float32"}}, {{MLOperandDataType/"float16"}} [=/any rank|N=] 0 to 5