LessOrEqual#

  • Domain: ai.onnx

  • Since 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)’]

Version History#