LessOrEqual#
Domain:
ai.onnxSince version: 16
Returns the tensor resulted from performing the LessOrEqual logical operation
elementwise on the input tensors A and B (with Numpy-style broadcasting support).
Inputs
A (T): First input operand for the logical operator.
B (T): Second input operand for the logical operator.
Outputs
C (T1): Result tensor.
Type Constraints
T: Constrain input types to all numeric tensors. Allowed types: tensor(bfloat16), tensor(double), tensor(float), tensor(float16), tensor(int16), tensor(int32), tensor(int64), tensor(int8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(uint8).
T1: Constrain output to boolean tensor. Allowed types: tensor(bool).
Examples#
test_cc_less_or_equal
Node:
LessOrEqual(x, y) -> (z)
Inputs:
x: shape=(2, 2), dtype=float32
[[1., 2.],
[3., 4.]]
y: shape=(2, 2), dtype=float32
[[2., 2.],
[2., 2.]]
Outputs:
z: shape=(2, 2), dtype=bool
[[ True, True],
[False, False]]
test_cc_less_or_equal_bcast
Node:
LessOrEqual(x, y) -> (z)
Inputs:
x: shape=(2, 2), dtype=float32
[[1., 2.],
[3., 4.]]
y: shape=(), dtype=float32
2.5
Outputs:
z: shape=(2, 2), dtype=bool
[[ True, True],
[False, False]]
test_cc_less_or_equal_bfloat16
Node:
LessOrEqual(x, y) -> (z)
Inputs:
x: shape=(2, 3), dtype=bfloat16
[[1, 4, 3],
[6, 5, 2]]
y: shape=(2, 3), dtype=bfloat16
[[2, 3, 3],
[5, 6, 1]]
Outputs:
z: shape=(2, 3), dtype=bool
[[ True, False, True],
[False, True, False]]
test_cc_less_or_equal_float16
Node:
LessOrEqual(x, y) -> (z)
Inputs:
x: shape=(2, 3), dtype=float16
[[1., 4., 3.],
[6., 5., 2.]]
y: shape=(2, 3), dtype=float16
[[2., 3., 3.],
[5., 6., 1.]]
Outputs:
z: shape=(2, 3), dtype=bool
[[ True, False, True],
[False, True, False]]
test_less_equal
Node:
LessOrEqual(x, y) -> (less_equal)
Inputs:
x: shape=(3, 4, 5), dtype=float32
[[[ 0.9760249 , -1.406126 , -0.12421781, -0.52373403, 0.41932675],
[ 0.27826825, -0.23256789, 0.31281596, 1.7152759 , -0.4685622 ],
[ 1.6827575 , -0.6550668 , 0.88474035, -0.8752956 , 1.5142606 ],
[ 2.230853 , 1.1628902 , 1.0536754 , -0.38988066, -0.12397643]],
[[-0.6159138 , 1.7301503 , 0.32262358, 0.26730144, -0.43189177],
[-1.41254 , -0.5992266 , -0.1417953 , -0.88752455, 0.54206866],
[ 1.2933948 , -1.0648104 , -1.7061615 , 0.35129723, 0.07801718],
[ 0.7410444 , 0.5409798 , 1.2180305 , -0.9647878 , 1.5623269 ]],
[[-1.2821317 , -0.32203224, 1.1033496 , -0.52434987, -2.103858 ],
[ 0.12551832, -1.0882939 , 1.1399779 , -0.8119061 , 1.0325336 ],
[-0.3464956 , 0.067316 , -0.6120505 , -0.8383071 , 0.4578635 ],
[-0.4873953 , -1.8118677 , 1.6179551 , -0.25800037, -1.3510442 ]]]
y: shape=(3, 4, 5), dtype=float32
[[[ 0.6424135 , -0.07923876, -0.80852747, 1.2304533 , -0.5928223 ],
[ 2.0904076 , 0.22288574, 1.3092872 , -0.4789879 , -0.99120224],
[ 0.02008047, -2.1639197 , 0.50506794, -0.0217918 , 0.53066057],
[ 1.614777 , -1.1102229 , -0.1454173 , -0.43676758, 1.6230818 ]],
[[-0.0030605 , -1.464648 , 0.9040757 , 0.36638427, 0.45825332],
[-0.58391577, -0.48593545, -1.7836744 , -0.45037678, 1.5327936 ],
[ 1.4424105 , -0.6637741 , -1.0735201 , 0.16453137, 1.1178625 ],
[-0.03689655, -1.7275084 , -1.0636946 , 1.3462708 , 0.7665019 ]],
[[ 0.3134391 , 0.20939107, -0.4457152 , -2.4183512 , 0.15469022],
[-0.61971503, 0.7720385 , -1.4681771 , -0.37253025, 0.12735151],
[-0.64202845, 0.32108006, 0.06701048, 0.90052515, -0.02043158],
[-1.2871481 , -0.539331 , -0.01650807, 0.2500747 , -0.41091728]]]
Outputs:
less_equal: shape=(3, 4, 5), dtype=bool
[[[False, True, False, True, False],
[ True, True, True, False, False],
[False, False, False, True, False],
[False, False, False, False, True]],
[[ True, False, True, True, True],
[ True, True, False, True, True],
[ True, True, True, False, True],
[False, False, False, True, False]],
[[ True, True, False, False, True],
[False, True, False, True, False],
[False, True, True, True, False],
[False, True, False, True, True]]]
test_less_equal_bcast
Node:
LessOrEqual(x, y) -> (less_equal)
Inputs:
x: shape=(3, 4, 5), dtype=float32
[[[ 0.688139 , 0.4059095 , 0.5489893 , 0.53392977, -0.23932606],
[-1.0142083 , 0.4045466 , 1.4186801 , 0.836225 , 0.34012377],
[ 0.39690927, 0.48286068, 0.11945067, 0.67921764, 0.6502616 ],
[-0.13860437, 1.0753198 , -1.2349424 , -0.3677892 , -1.31015 ]],
[[ 0.5327096 , 1.2503086 , 0.3544114 , -0.08178153, 1.5889839 ],
[ 1.0662332 , -0.7519196 , 1.5254875 , -0.8890685 , 0.5035054 ],
[ 0.27429065, 1.1453737 , -0.31324735, 0.01508748, -2.5111487 ],
[ 0.7356594 , -0.9168175 , -1.4680874 , -0.29763973, -0.33805344]],
[[-0.18328828, -0.9918209 , -0.43523848, 1.3486882 , 0.2865167 ],
[ 1.0735011 , 1.2454768 , -0.24654908, -0.25850663, -0.44884643],
[ 0.59952974, -0.87400043, -1.6007645 , -0.2318745 , -0.8217434 ],
[-0.38645756, -0.01502475, -2.1362379 , 1.4194688 , 0.61329293]]]
y: shape=(5,), dtype=float32
[-1.8606409 , -1.7987977 , -0.00592274, 0.8890261 , 0.33609542]
Outputs:
less_equal: shape=(3, 4, 5), dtype=bool
[[[False, False, False, True, True],
[False, False, False, True, False],
[False, False, False, True, False],
[False, False, True, True, True]],
[[False, False, False, True, False],
[False, False, False, True, False],
[False, False, True, True, True],
[False, False, True, True, True]],
[[False, False, True, False, True],
[False, False, True, True, True],
[False, False, True, True, True],
[False, False, True, False, False]]]
test_less_equal_int16
Node:
LessOrEqual(x, y) -> (less_equal)
Inputs:
x: shape=(3, 4, 5), dtype=int16
[[[ 0, -1, 0, 0, 0],
[ 0, 0, 0, 0, 1],
[ 0, 0, 0, 0, 0],
[ 0, 0, 1, 0, 0]],
[[ 0, 0, -1, 0, 0],
[ 0, 0, 0, 0, 0],
[ 0, 0, 0, -1, 0],
[-1, 0, 0, -1, 0]],
[[ 1, 0, -1, 0, 0],
[-1, -1, 0, 1, 0],
[ 0, -1, 0, -2, 1],
[-1, -1, 2, 0, 1]]]
y: shape=(3, 4, 5), dtype=int16
[[[ 0, 0, 1, 0, 0],
[ 0, 0, 0, 0, 1],
[-1, 0, 0, 1, 0],
[ 0, 0, 0, 0, 0]],
[[ 0, 0, 0, -1, 0],
[ 0, 0, 0, 0, 0],
[ 0, 0, -1, 1, 1],
[ 0, 0, 0, 0, 0]],
[[ 0, 0, 0, 0, 0],
[ 1, 0, 0, 1, 0],
[ 0, -1, 0, 0, 0],
[ 0, 0, 0, -2, 0]]]
Outputs:
less_equal: shape=(3, 4, 5), dtype=bool
[[[ True, True, True, True, True],
[ True, True, True, True, True],
[False, True, True, True, True],
[ True, True, False, True, True]],
[[ True, True, True, False, True],
[ True, True, True, True, True],
[ True, True, False, True, True],
[ True, True, True, True, True]],
[[False, True, True, True, True],
[ True, True, True, True, True],
[ True, True, True, True, False],
[ True, True, False, False, False]]]
test_less_equal_int8
Node:
LessOrEqual(x, y) -> (less_equal)
Inputs:
x: shape=(3, 4, 5), dtype=int8
[[[ 0, 0, 0, 0, 0],
[ 2, 0, 0, 0, 0],
[ 0, 0, -1, -1, 1],
[ 1, 1, 0, 0, 0]],
[[ 0, 0, 0, 0, 0],
[ 0, 0, 0, 0, 0],
[ 2, 0, 0, 0, 0],
[-2, 0, 0, -1, 0]],
[[ 0, 0, 1, -1, -1],
[ 0, 0, 0, 0, 0],
[ 0, 0, 0, 1, 0],
[ 0, 0, 0, 0, 0]]]
y: shape=(3, 4, 5), dtype=int8
[[[ 0, 0, 0, 0, 0],
[ 0, -1, 0, -1, 1],
[-1, 0, 0, 0, 0],
[-1, 0, 0, 1, 0]],
[[ 0, 0, 0, 0, 0],
[ 0, 1, 0, 0, 0],
[ 1, 0, 0, 0, 0],
[ 0, 0, 0, 0, 0]],
[[ 0, 1, 0, 0, 0],
[-2, 0, 0, 0, 0],
[ 0, 0, 0, 0, 0],
[ 0, 1, 0, -1, -1]]]
Outputs:
less_equal: shape=(3, 4, 5), dtype=bool
[[[ True, True, True, True, True],
[False, False, True, False, True],
[False, True, True, True, False],
[False, False, True, True, True]],
[[ True, True, True, True, True],
[ True, True, True, True, True],
[False, True, True, True, True],
[ True, True, True, True, True]],
[[ True, True, False, True, True],
[False, True, True, True, True],
[ True, True, True, False, True],
[ True, True, True, False, False]]]
test_less_equal_uint16
Node:
LessOrEqual(x, y) -> (less_equal)
Inputs:
x: shape=(3, 4, 5), dtype=uint16
[[[ 8, 2, 6, 11, 8],
[18, 17, 22, 11, 2],
[11, 19, 8, 21, 20],
[22, 10, 15, 7, 7]],
[[21, 8, 4, 18, 8],
[ 6, 19, 14, 22, 23],
[16, 0, 18, 11, 19],
[12, 12, 12, 2, 5]],
[[ 8, 5, 0, 10, 14],
[ 9, 21, 16, 2, 0],
[ 4, 6, 11, 5, 10],
[23, 22, 21, 23, 0]]]
y: shape=(3, 4, 5), dtype=uint16
[[[ 7, 10, 0, 0, 6],
[23, 23, 16, 11, 15],
[ 7, 9, 10, 5, 15],
[19, 8, 2, 18, 11]],
[[19, 23, 12, 20, 16],
[14, 14, 18, 17, 16],
[20, 11, 6, 23, 15],
[21, 9, 10, 20, 18]],
[[23, 12, 23, 12, 0],
[12, 7, 3, 22, 16],
[ 4, 19, 16, 6, 14],
[ 3, 4, 7, 0, 17]]]
Outputs:
less_equal: shape=(3, 4, 5), dtype=bool
[[[False, True, False, False, False],
[ True, True, False, True, True],
[False, False, True, False, False],
[False, False, False, True, True]],
[[False, True, True, True, True],
[ True, False, True, False, False],
[ True, True, False, True, False],
[ True, False, False, True, True]],
[[ True, True, True, True, False],
[ True, False, False, True, True],
[ True, True, True, True, True],
[False, False, False, False, True]]]
test_less_equal_uint32
Node:
LessOrEqual(x, y) -> (less_equal)
Inputs:
x: shape=(3, 4, 5), dtype=uint32
[[[21, 22, 16, 15, 1],
[21, 16, 2, 3, 11],
[ 0, 22, 14, 18, 0],
[ 8, 6, 18, 14, 3]],
[[18, 0, 2, 4, 12],
[ 8, 3, 11, 21, 16],
[13, 1, 7, 0, 22],
[ 6, 11, 3, 1, 1]],
[[ 3, 5, 12, 6, 0],
[ 0, 16, 4, 18, 17],
[ 8, 5, 20, 6, 5],
[ 2, 23, 11, 7, 8]]]
y: shape=(3, 4, 5), dtype=uint32
[[[ 6, 22, 21, 3, 21],
[12, 10, 6, 2, 12],
[ 5, 8, 13, 10, 19],
[ 9, 9, 13, 8, 1]],
[[21, 1, 18, 8, 12],
[20, 0, 15, 9, 8],
[21, 12, 3, 16, 7],
[19, 18, 3, 20, 13]],
[[ 8, 5, 10, 1, 17],
[ 9, 22, 19, 1, 16],
[12, 13, 12, 4, 11],
[14, 3, 10, 17, 8]]]
Outputs:
less_equal: shape=(3, 4, 5), dtype=bool
[[[False, True, True, False, True],
[False, False, True, False, True],
[ True, False, False, False, True],
[ True, True, False, False, False]],
[[ True, True, True, True, True],
[ True, False, True, False, False],
[ True, True, False, True, False],
[ True, True, True, True, True]],
[[ True, True, False, False, True],
[ True, True, True, False, False],
[ True, True, False, False, True],
[ True, False, False, True, True]]]
test_less_equal_uint64
Node:
LessOrEqual(x, y) -> (less_equal)
Inputs:
x: shape=(3, 4, 5), dtype=uint64
[[[ 4, 1, 18, 13, 3],
[ 8, 15, 16, 23, 12],
[18, 22, 22, 10, 2],
[11, 10, 4, 23, 15]],
[[22, 1, 18, 2, 2],
[23, 17, 14, 12, 2],
[ 7, 7, 8, 5, 13],
[18, 4, 20, 21, 5]],
[[ 7, 1, 22, 17, 7],
[10, 1, 12, 4, 1],
[ 6, 20, 12, 3, 2],
[ 0, 2, 13, 6, 13]]]
y: shape=(3, 4, 5), dtype=uint64
[[[ 5, 0, 5, 20, 11],
[18, 14, 22, 13, 1],
[ 2, 5, 6, 18, 17],
[11, 17, 19, 16, 19]],
[[ 7, 2, 4, 14, 11],
[ 9, 4, 19, 6, 10],
[12, 0, 14, 2, 12],
[ 4, 3, 14, 6, 6]],
[[19, 17, 16, 17, 7],
[ 2, 2, 4, 16, 23],
[19, 7, 2, 23, 23],
[20, 22, 0, 3, 19]]]
Outputs:
less_equal: shape=(3, 4, 5), dtype=bool
[[[ True, False, False, True, True],
[ True, False, True, False, False],
[False, False, False, True, True],
[ True, True, True, False, True]],
[[False, True, False, True, True],
[False, False, True, False, True],
[ True, False, True, False, False],
[False, False, False, False, True]],
[[ True, True, False, True, True],
[False, True, False, True, True],
[ True, False, False, True, True],
[ True, True, False, False, True]]]
test_less_equal_uint8
Node:
LessOrEqual(x, y) -> (less_equal)
Inputs:
x: shape=(3, 4, 5), dtype=uint8
[[[ 2, 21, 14, 12, 23],
[22, 11, 8, 5, 0],
[ 7, 19, 5, 0, 12],
[13, 13, 2, 18, 3]],
[[18, 6, 14, 0, 14],
[ 9, 20, 20, 6, 16],
[16, 10, 7, 14, 3],
[21, 0, 18, 21, 3]],
[[16, 13, 23, 5, 12],
[ 2, 19, 8, 10, 10],
[ 2, 2, 10, 11, 0],
[ 1, 8, 4, 21, 8]]]
y: shape=(3, 4, 5), dtype=uint8
[[[19, 13, 1, 13, 0],
[12, 7, 5, 0, 17],
[ 5, 20, 4, 16, 7],
[ 4, 15, 18, 3, 20]],
[[ 0, 7, 18, 9, 2],
[ 6, 20, 20, 14, 7],
[12, 10, 22, 20, 2],
[ 6, 14, 6, 19, 19]],
[[15, 4, 0, 3, 21],
[ 5, 7, 10, 2, 4],
[17, 13, 7, 0, 0],
[ 0, 7, 11, 14, 0]]]
Outputs:
less_equal: shape=(3, 4, 5), dtype=bool
[[[ True, False, False, True, False],
[False, False, False, False, True],
[False, True, False, True, False],
[False, True, True, False, True]],
[[False, True, True, True, False],
[False, True, True, True, False],
[False, True, True, True, False],
[False, True, False, False, True]],
[[False, False, False, False, True],
[ True, False, True, False, False],
[ True, True, False, False, True],
[False, False, True, False, False]]]
Differences with previous version (12)#
SchemaDiff: LessOrEqual (domain 'ai.onnx')
old version: 12
new version: 16
breaking: no
Type constraints:
changed ‘T’: added types: [‘tensor(bfloat16)’]