Less#
Domain:
ai.onnxSince version: 13
Returns the tensor resulted from performing the Less 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
Node:
Less(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, False],
[False, False]]
test_cc_less_bcast
Node:
Less(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_bfloat16
Node:
Less(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, False],
[False, True, False]]
test_cc_less_float16
Node:
Less(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, False],
[False, True, False]]
test_less
Node:
Less(x, y) -> (less)
Inputs:
x: shape=(3, 4, 5), dtype=float32
[[[-0.24912022, 0.37703994, -0.69417447, -0.7060292 , 0.20510858],
[-0.6286968 , 1.6711484 , 0.33107895, 0.7037558 , -1.3299477 ],
[ 1.2570701 , 1.9146868 , -0.6062891 , -1.0759572 , -0.16256061],
[ 0.2966216 , -0.32503194, 0.27875352, -0.66562593, 0.01234083]],
[[-0.20715022, 0.14588691, 1.1557806 , 0.46587473, 0.97787076],
[-1.0761734 , -0.8160329 , -0.7835996 , -0.23407106, 1.9457138 ],
[ 1.0166521 , -1.4913279 , -0.6863505 , -0.40249848, -1.3852327 ],
[-0.77970237, 0.8188312 , -0.11476051, -0.29980806, 0.64011383]],
[[-0.58414567, -1.0774288 , -0.68119806, 0.7641559 , -2.0380206 ],
[-0.01588069, 1.8616133 , -1.0863703 , 0.31693026, -0.6249668 ],
[-1.7837567 , -1.1630548 , 0.22905143, -0.25897345, 0.5301326 ],
[ 0.44164625, 0.07234928, -0.8231903 , 0.33295313, 0.59297967]]]
y: shape=(3, 4, 5), dtype=float32
[[[-1.313993 , -0.9773617 , -0.6343613 , -0.979214 , -0.58685726],
[ 1.6898878 , 0.08713032, 1.1718034 , 0.79937506, 0.02316316],
[ 0.29876754, 0.3574321 , 1.1932331 , -0.9904888 , 0.60881287],
[-0.48373404, 0.70216364, -0.8474465 , -1.2743044 , 0.29819134]],
[[-0.4808629 , 0.29299355, -0.61132276, 0.3887899 , -1.2674389 ],
[-0.60134256, -0.5235882 , 0.97903776, -0.41479465, 0.15080978],
[ 1.9587631 , -1.2112936 , -0.30354005, 0.14342186, -0.8019956 ],
[ 2.3820956 , 0.72104615, -0.44501275, -1.3686862 , -0.5832208 ]],
[[ 0.7293726 , -1.5513726 , 0.8104244 , 1.7539967 , -0.0733771 ],
[ 1.4704529 , -0.6496508 , -0.20207614, -0.43526402, -1.2906929 ],
[ 1.0649142 , 0.89014375, 0.86430603, -1.833441 , 0.4498562 ],
[-1.6465589 , -2.0779915 , -0.7255597 , -1.012863 , 0.95887685]]]
Outputs:
less: shape=(3, 4, 5), dtype=bool
[[[False, False, True, False, False],
[ True, False, True, True, True],
[False, False, True, True, True],
[False, True, False, False, True]],
[[False, True, False, False, False],
[ True, True, True, False, False],
[ True, True, True, True, True],
[ True, False, False, False, False]],
[[ True, False, True, True, True],
[ True, False, True, False, False],
[ True, True, True, False, False],
[False, False, True, False, True]]]
test_less_bcast
Node:
Less(x, y) -> (less)
Inputs:
x: shape=(3, 4, 5), dtype=float32
[[[-0.77932763, -0.11304837, -0.02405588, -0.74120575, 0.8054617 ],
[-0.7910769 , 0.27689603, 1.9664423 , 0.8854545 , -1.534002 ],
[ 0.92959636, 0.5410489 , 0.75333405, -0.2559339 , 0.813136 ],
[-0.19769451, 0.7592801 , -0.773745 , -0.20088923, 0.9104622 ]],
[[ 1.7654598 , -1.5343306 , -0.2801714 , -0.26017332, 1.7559413 ],
[ 1.4949077 , 0.36709183, -0.2965113 , 0.6934157 , 0.33218938],
[-0.80441034, 0.50218654, 0.11497802, -0.20262195, -0.08662814],
[-0.24888717, 0.40791112, -0.33651662, 0.26782736, -0.6243853 ]],
[[ 0.17729989, 0.786931 , 0.15775031, -0.5427288 , 1.1266938 ],
[-0.6303296 , -1.9371543 , -0.79998 , -0.32684922, 0.5279692 ],
[ 0.15060616, -0.31763977, -0.4506991 , -0.62456864, -1.5034933 ],
[-1.2187058 , 0.899553 , 1.2907162 , -0.59581614, 1.2079502 ]]]
y: shape=(5,), dtype=float32
[ 0.85281533, -2.0860636 , 0.6411558 , -0.8953869 , 0.9196889 ]
Outputs:
less: shape=(3, 4, 5), dtype=bool
[[[ True, False, True, False, True],
[ True, False, False, False, True],
[False, False, False, False, True],
[ True, False, True, False, True]],
[[False, False, True, False, False],
[False, False, True, False, True],
[ True, False, True, False, True],
[ True, False, True, False, True]],
[[ True, False, True, False, False],
[ True, False, True, False, True],
[ True, False, True, False, True],
[ True, False, False, False, False]]]
test_less_int16
Node:
Less(x, y) -> (less)
Inputs:
x: shape=(3, 4, 5), dtype=int16
[[[ 0, -1, 1, 0, 1],
[ 1, 2, 0, 0, 1],
[ 0, 0, 0, -1, 0],
[ 0, 0, 0, 0, 0]],
[[ 0, 0, 0, 0, 0],
[-1, -1, 0, 0, 0],
[-1, 0, 1, 0, 0],
[ 0, 0, 0, 0, 0]],
[[ 1, 0, 0, 0, 2],
[-1, 0, 0, 0, 1],
[ 0, 0, 1, 0, 1],
[ 0, 0, 0, -1, 2]]]
y: shape=(3, 4, 5), dtype=int16
[[[ 0, -1, 0, 0, 0],
[-1, -2, 0, 0, 0],
[ 1, 0, -1, 0, 0],
[ 0, -1, 0, 0, 0]],
[[ 0, -1, 1, -1, 0],
[ 0, -2, 0, 0, -1],
[ 0, 0, 1, 0, 0],
[ 0, 0, 0, 0, 1]],
[[ 1, 0, -1, 0, 0],
[ 0, 0, 0, 0, 0],
[ 1, -1, 0, 0, 0],
[-1, -1, 0, 1, 0]]]
Outputs:
less: shape=(3, 4, 5), dtype=bool
[[[False, False, False, False, False],
[False, False, False, False, False],
[ True, False, False, True, False],
[False, False, False, False, False]],
[[False, False, True, False, False],
[ True, False, False, False, False],
[ True, False, False, False, False],
[False, False, False, False, True]],
[[False, False, False, False, False],
[ True, False, False, False, False],
[ True, False, False, False, False],
[False, False, False, True, False]]]
test_less_int8
Node:
Less(x, y) -> (less)
Inputs:
x: shape=(3, 4, 5), dtype=int8
[[[ 0, 0, 0, 0, -1],
[ 0, 0, 0, 0, 0],
[ 0, 0, 1, 0, 0],
[ 0, 0, -1, 0, 1]],
[[ 1, 1, -1, -1, 0],
[ 0, 0, 0, 1, 1],
[-1, -1, -1, 0, 0],
[ 0, -1, 0, 0, 0]],
[[ 0, -1, 0, 0, 0],
[-1, 0, 0, 0, 0],
[ 1, 0, 0, -1, 0],
[-1, 0, 0, 0, 0]]]
y: shape=(3, 4, 5), dtype=int8
[[[-1, 0, 1, 0, 0],
[ 0, 1, 0, 0, 0],
[ 0, -1, 0, 0, 0],
[ 0, 1, 0, 0, 0]],
[[ 0, 0, 0, 0, 0],
[ 0, 0, -1, 0, 0],
[ 0, 0, 0, -1, 0],
[ 0, 0, 0, 0, 2]],
[[ 1, 0, 0, 0, 0],
[ 0, 0, 0, 0, 0],
[ 0, 0, 0, 0, -1],
[ 1, 0, 0, -1, 1]]]
Outputs:
less: shape=(3, 4, 5), dtype=bool
[[[False, False, True, False, True],
[False, True, False, False, False],
[False, False, False, False, False],
[False, True, True, False, False]],
[[False, False, True, True, False],
[False, False, False, False, False],
[ True, True, True, False, False],
[False, True, False, False, True]],
[[ True, True, False, False, False],
[ True, False, False, False, False],
[False, False, False, True, False],
[ True, False, False, False, True]]]
test_less_uint16
Node:
Less(x, y) -> (less)
Inputs:
x: shape=(3, 4, 5), dtype=uint16
[[[ 1, 14, 4, 20, 8],
[13, 23, 2, 19, 22],
[19, 2, 19, 0, 12],
[ 8, 18, 14, 17, 7]],
[[20, 12, 17, 11, 5],
[12, 1, 5, 19, 5],
[ 6, 6, 14, 1, 20],
[14, 23, 4, 1, 6]],
[[15, 6, 6, 15, 13],
[ 1, 7, 21, 21, 17],
[21, 14, 17, 3, 11],
[23, 16, 4, 7, 8]]]
y: shape=(3, 4, 5), dtype=uint16
[[[ 2, 15, 0, 14, 12],
[17, 6, 2, 12, 20],
[18, 5, 22, 22, 11],
[ 4, 4, 0, 6, 11]],
[[22, 6, 2, 10, 5],
[19, 11, 23, 14, 5],
[12, 12, 12, 11, 13],
[ 7, 23, 22, 4, 4]],
[[ 4, 2, 6, 9, 8],
[ 1, 14, 5, 10, 12],
[13, 5, 0, 6, 13],
[ 3, 1, 1, 10, 12]]]
Outputs:
less: shape=(3, 4, 5), dtype=bool
[[[ True, True, False, False, True],
[ True, False, False, False, False],
[False, True, True, True, False],
[False, False, False, False, True]],
[[ True, False, False, False, False],
[ True, True, True, False, False],
[ True, True, False, True, False],
[False, False, True, True, False]],
[[False, False, False, False, False],
[False, True, False, False, False],
[False, False, False, True, True],
[False, False, False, True, True]]]
test_less_uint32
Node:
Less(x, y) -> (less)
Inputs:
x: shape=(3, 4, 5), dtype=uint32
[[[12, 8, 1, 1, 8],
[12, 0, 16, 13, 18],
[16, 9, 0, 1, 11],
[14, 12, 9, 8, 9]],
[[ 4, 5, 0, 4, 16],
[12, 23, 4, 21, 6],
[12, 20, 20, 18, 1],
[22, 23, 11, 10, 12]],
[[ 2, 8, 11, 6, 9],
[ 5, 7, 18, 4, 18],
[10, 15, 16, 6, 6],
[ 8, 4, 0, 21, 6]]]
y: shape=(3, 4, 5), dtype=uint32
[[[15, 23, 11, 18, 23],
[ 6, 3, 21, 19, 9],
[ 7, 4, 4, 1, 3],
[14, 4, 1, 5, 8]],
[[ 2, 9, 3, 13, 8],
[ 8, 7, 6, 2, 0],
[11, 3, 22, 11, 1],
[14, 17, 4, 15, 10]],
[[ 7, 18, 7, 22, 18],
[20, 5, 5, 5, 17],
[15, 13, 7, 6, 19],
[21, 5, 2, 21, 15]]]
Outputs:
less: shape=(3, 4, 5), dtype=bool
[[[ True, True, True, True, True],
[False, True, True, True, False],
[False, False, True, False, False],
[False, False, False, False, False]],
[[False, True, True, True, False],
[False, False, True, False, False],
[False, False, True, False, False],
[False, False, False, True, False]],
[[ True, True, False, True, True],
[ True, False, False, True, False],
[ True, False, False, False, True],
[ True, True, True, False, True]]]
test_less_uint64
Node:
Less(x, y) -> (less)
Inputs:
x: shape=(3, 4, 5), dtype=uint64
[[[17, 23, 7, 0, 22],
[12, 15, 15, 17, 4],
[16, 0, 7, 0, 6],
[22, 12, 6, 19, 21]],
[[ 8, 6, 19, 9, 2],
[ 1, 10, 8, 6, 0],
[14, 19, 16, 3, 3],
[ 7, 4, 23, 22, 3]],
[[ 8, 18, 16, 7, 7],
[15, 19, 9, 0, 4],
[ 9, 15, 3, 19, 17],
[ 8, 10, 2, 5, 0]]]
y: shape=(3, 4, 5), dtype=uint64
[[[18, 4, 12, 15, 18],
[ 2, 2, 11, 17, 1],
[14, 6, 0, 16, 0],
[ 2, 2, 7, 4, 0]],
[[ 5, 12, 16, 13, 13],
[17, 17, 15, 16, 2],
[19, 18, 22, 0, 1],
[ 4, 21, 12, 0, 4]],
[[ 3, 22, 6, 21, 23],
[23, 14, 21, 2, 21],
[22, 23, 21, 17, 3],
[ 8, 12, 4, 10, 23]]]
Outputs:
less: shape=(3, 4, 5), dtype=bool
[[[ True, False, True, True, False],
[False, False, False, False, False],
[False, True, False, True, False],
[False, False, True, False, False]],
[[False, True, False, True, True],
[ True, True, True, True, True],
[ True, False, True, False, False],
[False, True, False, False, True]],
[[False, True, False, True, True],
[ True, False, True, True, True],
[ True, True, True, False, False],
[False, True, True, True, True]]]
test_less_uint8
Node:
Less(x, y) -> (less)
Inputs:
x: shape=(3, 4, 5), dtype=uint8
[[[12, 17, 10, 0, 3],
[14, 16, 20, 11, 1],
[ 5, 14, 13, 4, 21],
[18, 12, 8, 11, 5]],
[[17, 10, 0, 18, 18],
[ 4, 4, 1, 7, 19],
[21, 22, 10, 6, 18],
[ 6, 0, 11, 23, 6]],
[[22, 21, 15, 12, 8],
[ 1, 14, 20, 5, 17],
[ 7, 16, 14, 20, 1],
[16, 10, 6, 17, 8]]]
y: shape=(3, 4, 5), dtype=uint8
[[[23, 1, 19, 10, 3],
[12, 21, 11, 7, 1],
[ 7, 17, 1, 14, 7],
[ 2, 8, 7, 12, 2]],
[[14, 10, 2, 12, 13],
[11, 2, 8, 7, 3],
[15, 19, 3, 17, 16],
[21, 11, 7, 5, 16]],
[[ 1, 14, 9, 19, 0],
[ 9, 1, 19, 15, 6],
[ 0, 0, 15, 6, 17],
[17, 2, 20, 1, 1]]]
Outputs:
less: shape=(3, 4, 5), dtype=bool
[[[ True, False, True, True, False],
[False, True, False, False, False],
[ True, True, False, True, False],
[False, False, False, True, False]],
[[False, False, True, False, False],
[ True, False, True, False, False],
[False, False, False, True, False],
[ True, True, False, False, True]],
[[False, False, False, True, False],
[ True, False, False, True, False],
[False, False, True, False, True],
[ True, False, True, False, False]]]
Differences with previous version (9)#
SchemaDiff: Less (domain 'ai.onnx')
old version: 9
new version: 13
breaking: no
Type constraints:
changed ‘T’: added types: [‘tensor(bfloat16)’]