GreaterOrEqual#

  • Domain: ai.onnx

  • Since version: 16

Returns the tensor resulted from performing the GreaterOrEqual 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_greater_or_equal

Node:
  GreaterOrEqual(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
    [[False,  True],
     [ True,  True]]

test_cc_greater_or_equal_bcast

Node:
  GreaterOrEqual(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
    [[False, False],
     [ True,  True]]

test_cc_greater_or_equal_bfloat16

Node:
  GreaterOrEqual(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
    [[False,  True,  True],
     [ True, False,  True]]

test_cc_greater_or_equal_float16

Node:
  GreaterOrEqual(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
    [[False,  True,  True],
     [ True, False,  True]]

test_greater_equal

Node:
  GreaterOrEqual(x, y) -> (greater_equal)
Inputs:
  x: shape=(3, 4, 5), dtype=float32
    [[[ 1.096885  ,  0.07066563,  1.2448575 ,  0.14811043, -0.5882804 ],
      [-0.76082605,  0.30773467, -0.16073832, -0.5154356 , -1.2388316 ],
      [ 0.45789725,  1.223727  ,  0.904155  ,  1.3492115 , -0.3860116 ],
      [ 1.0861362 , -0.04619086, -0.4874804 ,  0.09241318,  0.01729156]],

     [[ 0.33288187,  2.0623937 ,  0.8016675 , -1.2551261 , -0.95763373],
      [ 2.8635995 , -0.07978736,  0.7112011 , -1.0436926 ,  0.04026257],
      [ 1.7116932 ,  1.4548388 ,  0.05999403, -0.4005206 , -0.311438  ],
      [ 1.7903335 ,  0.65163237,  0.9814421 ,  2.2528698 ,  0.9619803 ]],

     [[-0.7707977 , -1.3540401 ,  0.6926936 ,  0.16810998,  0.39450422],
      [ 0.7462312 , -0.65408707, -0.01557474, -0.31656304, -0.52292097],
      [-0.12932564,  0.6598996 , -0.9455917 , -0.09841688, -0.2862465 ],
      [ 1.9248927 ,  0.4243033 , -0.92452365, -1.027331  , -1.695347  ]]]
  y: shape=(3, 4, 5), dtype=float32
    [[[-9.4792253e-01, -6.1622328e-01, -2.7506614e+00, -7.1404856e-01,
        1.3997095e+00],
      [-2.8393906e-01, -1.6412349e-01, -6.7827290e-01,  2.4085191e-01,
        4.9361777e-01],
      [-2.4063063e-01,  1.7832187e+00,  1.2601568e+00,  8.7304723e-01,
        1.6478558e+00],
      [-2.5179946e-01, -1.4829162e+00, -4.9271366e-01, -1.5499992e+00,
       -3.0267167e-01]],

     [[-4.9574757e-01,  2.8974986e-01,  8.6432129e-01, -1.1831111e+00,
        5.8822042e-01],
      [-1.7248467e+00, -4.0154502e-01,  2.4545431e-01,  1.4359000e+00,
       -9.9507153e-01],
      [-9.6928167e-01, -9.7301491e-02,  1.3923490e-01,  1.0592966e+00,
       -1.2110893e+00],
      [-4.0319696e-01, -8.7887537e-01, -1.2383486e+00,  1.6847624e+00,
        8.3216959e-01]],

     [[-1.5605131e-01, -1.1203907e+00, -1.8518837e-01, -8.6301607e-01,
        1.5879667e-03],
      [-2.6343402e-01,  1.6419634e+00, -5.7128775e-01,  8.8431293e-01,
       -4.1970479e-01],
      [ 4.2572483e-01, -1.4820842e-01, -1.3883865e+00, -2.6390123e-01,
       -4.2321909e-02],
      [ 6.5218055e-01, -9.3892686e-02, -2.2359974e+00,  1.3215044e+00,
        8.4481820e-02]]]

Outputs:
  greater_equal: shape=(3, 4, 5), dtype=bool
    [[[ True,  True,  True,  True, False],
      [False,  True,  True, False, False],
      [ True, False, False,  True, False],
      [ True,  True,  True,  True,  True]],

     [[ True,  True, False, False, False],
      [ True,  True,  True, False,  True],
      [ True,  True, False, False,  True],
      [ True,  True,  True,  True,  True]],

     [[False, False,  True,  True,  True],
      [ True, False,  True, False, False],
      [False,  True,  True,  True, False],
      [ True,  True,  True, False, False]]]

test_greater_equal_bcast

Node:
  GreaterOrEqual(x, y) -> (greater_equal)
Inputs:
  x: shape=(3, 4, 5), dtype=float32
    [[[ 2.4561718 , -0.5817526 , -0.54229295, -0.41356328, -0.20007235],
      [-0.54210097, -0.65532076,  1.3473451 , -0.26939955, -0.72250503],
      [ 0.95833427, -0.78738844, -0.28558663, -0.04312987,  0.23397207],
      [-1.9877945 ,  1.324135  ,  1.140795  , -1.7412977 , -0.02137867]],

     [[ 0.5489151 , -0.2974111 , -1.2979202 , -0.2075926 , -1.7911516 ],
      [-1.660064  ,  2.078913  ,  0.847851  ,  0.13794622,  0.8359384 ],
      [-0.5319438 ,  1.3650343 ,  1.2040756 ,  1.1579663 ,  1.9649589 ],
      [-0.8214484 , -0.8813257 , -1.7042575 ,  1.2134799 ,  1.530937  ]],

     [[-0.08842818, -2.3269267 , -0.7379559 ,  0.71526307, -0.92147946],
      [-0.42176482, -0.2546885 ,  0.6320057 , -1.148917  , -1.7351899 ],
      [-0.0150405 , -0.7948117 , -0.9393947 , -0.88039076, -1.2827091 ],
      [ 0.33037648, -0.52088577,  1.5395774 ,  2.1163888 , -1.3960867 ]]]
  y: shape=(5,), dtype=float32
    [ 0.8498976 , -0.56461936,  1.0727223 ,  0.32034445,  0.14509577]

Outputs:
  greater_equal: shape=(3, 4, 5), dtype=bool
    [[[ True, False, False, False, False],
      [False, False,  True, False, False],
      [ True, False, False, False,  True],
      [False,  True,  True, False, False]],

     [[False,  True, False, False, False],
      [False,  True, False, False,  True],
      [False,  True,  True,  True,  True],
      [False, False, False,  True,  True]],

     [[False, False, False,  True, False],
      [False,  True, False, False, False],
      [False, False, False, False, False],
      [False,  True,  True,  True, False]]]

test_greater_equal_int16

Node:
  GreaterOrEqual(x, y) -> (greater_equal)
Inputs:
  x: shape=(3, 4, 5), dtype=int16
    [[[ 0,  0,  1, -1,  0],
      [ 0, -1,  1,  0,  0],
      [ 0,  0,  0,  0,  1],
      [-1,  1,  1,  0, -1]],

     [[ 0,  0,  0,  0,  0],
      [-1,  0,  0,  0, -1],
      [ 0, -1,  0,  0,  0],
      [ 0,  0,  0,  0,  1]],

     [[-1,  0, -1, -2,  0],
      [-2,  0, -2,  0,  0],
      [ 0,  0,  0,  0, -1],
      [ 0,  0,  0, -1, -1]]]
  y: shape=(3, 4, 5), dtype=int16
    [[[ 0,  0,  0,  0,  0],
      [ 0,  0,  0,  0, -1],
      [-1,  0,  0,  0,  0],
      [-1,  0,  0,  0,  0]],

     [[ 0,  0,  0, -1,  0],
      [ 0,  0,  0,  1,  0],
      [ 0,  0,  1,  0,  2],
      [ 0,  0,  0, -1,  0]],

     [[ 0,  0,  0, -1,  0],
      [ 0,  0,  0,  1,  0],
      [ 0, -1, -2, -1,  0],
      [ 0, -1, -1, -1,  0]]]

Outputs:
  greater_equal: shape=(3, 4, 5), dtype=bool
    [[[ True,  True,  True, False,  True],
      [ True, False,  True,  True,  True],
      [ True,  True,  True,  True,  True],
      [ True,  True,  True,  True, False]],

     [[ True,  True,  True,  True,  True],
      [False,  True,  True, False, False],
      [ True, False, False,  True, False],
      [ True,  True,  True,  True,  True]],

     [[False,  True, False, False,  True],
      [False,  True, False, False,  True],
      [ True,  True,  True,  True, False],
      [ True,  True,  True,  True, False]]]

test_greater_equal_int8

Node:
  GreaterOrEqual(x, y) -> (greater_equal)
Inputs:
  x: shape=(3, 4, 5), dtype=int8
    [[[ 2,  0,  0, -1,  0],
      [ 0, -1, -1,  2, -2],
      [ 0, -1,  0, -1, -1],
      [ 0,  0,  0,  0, -1]],

     [[ 0,  0,  0, -1,  0],
      [ 0,  0,  0,  0,  0],
      [ 0,  0, -2,  1, -1],
      [ 1,  2,  1, -1,  0]],

     [[ 0,  0,  0,  0,  0],
      [ 0, -1,  0,  0,  0],
      [ 0,  0,  0,  0,  0],
      [ 0,  2,  2,  0, -1]]]
  y: shape=(3, 4, 5), dtype=int8
    [[[ 0,  0, -1,  0,  2],
      [ 0, -1,  0,  0,  0],
      [ 0, -2,  0,  0,  1],
      [-1, -1,  0,  0,  0]],

     [[ 0, -1,  0,  0, -1],
      [ 0,  0,  0,  0,  0],
      [ 0,  0,  1,  0,  0],
      [ 0,  0,  1,  0,  0]],

     [[ 0,  0, -3,  0,  1],
      [-1,  0,  0,  0,  0],
      [-1,  0,  0,  1,  0],
      [ 0,  0,  0,  1, -1]]]

Outputs:
  greater_equal: shape=(3, 4, 5), dtype=bool
    [[[ True,  True,  True, False, False],
      [ True,  True, False,  True, False],
      [ True,  True,  True, False, False],
      [ True,  True,  True,  True, False]],

     [[ True,  True,  True, False,  True],
      [ True,  True,  True,  True,  True],
      [ True,  True, False,  True, False],
      [ True,  True,  True, False,  True]],

     [[ True,  True,  True,  True, False],
      [ True, False,  True,  True,  True],
      [ True,  True,  True, False,  True],
      [ True,  True,  True, False,  True]]]

test_greater_equal_uint16

Node:
  GreaterOrEqual(x, y) -> (greater_equal)
Inputs:
  x: shape=(3, 4, 5), dtype=uint16
    [[[19, 18, 14,  0, 12],
      [11,  1, 23,  5, 12],
      [11, 11, 16, 15,  7],
      [17,  3, 17,  4,  3]],

     [[ 1,  4, 12, 21, 16],
      [10,  1,  5, 19, 18],
      [ 0, 15,  2,  6, 22],
      [ 8, 13, 22, 22,  5]],

     [[ 3, 16, 10,  3, 11],
      [18, 19, 11,  0,  6],
      [19,  5,  8, 20, 21],
      [ 2, 22,  2,  2, 16]]]
  y: shape=(3, 4, 5), dtype=uint16
    [[[22, 19,  2, 12, 15],
      [12, 15, 17,  0,  8],
      [ 6,  6, 10, 19, 20],
      [10, 11, 14,  8,  7]],

     [[ 5,  9, 11,  1,  3],
      [ 1, 10, 22, 19, 21],
      [ 0, 18, 21,  7, 14],
      [23, 17, 11, 14,  1]],

     [[16,  2,  8, 10, 21],
      [19,  3,  7,  0,  8],
      [ 4,  2,  1, 16, 14],
      [23,  0,  1, 16,  8]]]

Outputs:
  greater_equal: shape=(3, 4, 5), dtype=bool
    [[[False, False,  True, False, False],
      [False, False,  True,  True,  True],
      [ True,  True,  True, False, False],
      [ True, False,  True, False, False]],

     [[False, False,  True,  True,  True],
      [ True, False, False,  True, False],
      [ True, False, False, False,  True],
      [False, False,  True,  True,  True]],

     [[False,  True,  True, False, False],
      [False,  True,  True,  True, False],
      [ True,  True,  True,  True,  True],
      [False,  True,  True, False,  True]]]

test_greater_equal_uint32

Node:
  GreaterOrEqual(x, y) -> (greater_equal)
Inputs:
  x: shape=(3, 4, 5), dtype=uint32
    [[[ 3,  2, 10, 19,  9],
      [23,  5, 22, 13, 17],
      [ 5,  0,  9, 17,  6],
      [10, 18,  0, 10, 20]],

     [[14, 19,  9,  0, 21],
      [23, 23, 14,  7,  9],
      [17, 21, 22,  3, 20],
      [20, 13, 21,  6, 12]],

     [[16, 14, 14, 12, 14],
      [16, 15, 23,  0,  7],
      [14, 17, 17,  2, 12],
      [17, 22, 13, 10, 18]]]
  y: shape=(3, 4, 5), dtype=uint32
    [[[ 1, 11, 23,  1,  4],
      [ 7,  6, 12, 12,  1],
      [ 1,  6, 11, 13,  7],
      [13, 20,  3,  4,  8]],

     [[15, 14, 20, 18,  5],
      [20, 14, 11, 16, 13],
      [23, 13, 21,  6,  0],
      [ 4, 17, 17, 23,  6]],

     [[ 8, 13, 13,  5, 17],
      [12,  1,  0,  6,  4],
      [20, 22, 20, 16, 15],
      [ 5, 19, 14,  8,  8]]]

Outputs:
  greater_equal: shape=(3, 4, 5), dtype=bool
    [[[ True, False, False,  True,  True],
      [ True, False,  True,  True,  True],
      [ True, False, False,  True, False],
      [False, False, False,  True,  True]],

     [[False,  True, False, False,  True],
      [ True,  True,  True, False, False],
      [False,  True,  True, False,  True],
      [ True, False,  True, False,  True]],

     [[ True,  True,  True,  True, False],
      [ True,  True,  True, False,  True],
      [False, False, False, False, False],
      [ True,  True, False,  True,  True]]]

test_greater_equal_uint64

Node:
  GreaterOrEqual(x, y) -> (greater_equal)
Inputs:
  x: shape=(3, 4, 5), dtype=uint64
    [[[20, 17, 18, 17,  7],
      [17, 22, 22,  8,  0],
      [14,  4, 10, 16,  6],
      [ 2, 18, 11, 23,  6]],

     [[10,  0, 23,  5,  8],
      [ 6, 12, 10,  6, 14],
      [ 5,  9, 17,  1,  3],
      [ 0,  6, 19, 23,  7]],

     [[18, 18,  4, 17, 23],
      [ 2, 23,  6, 21, 23],
      [21, 13, 11,  1, 17],
      [ 4, 16,  4, 17,  3]]]
  y: shape=(3, 4, 5), dtype=uint64
    [[[17,  1, 22, 10,  7],
      [17,  2, 11, 15, 13],
      [16, 17, 21,  3,  6],
      [ 2, 16,  4,  6,  0]],

     [[13, 11,  7,  3,  7],
      [ 7,  7, 10, 22, 23],
      [ 4, 14, 13, 13, 15],
      [12,  9, 20, 12,  8]],

     [[ 8, 21, 18, 18,  6],
      [ 1,  3,  5,  3, 12],
      [20,  7,  5,  1,  5],
      [ 7, 17, 18,  8,  6]]]

Outputs:
  greater_equal: shape=(3, 4, 5), dtype=bool
    [[[ True,  True, False,  True,  True],
      [ True,  True,  True, False, False],
      [False, False, False,  True,  True],
      [ True,  True,  True,  True,  True]],

     [[False, False,  True,  True,  True],
      [False,  True,  True, False, False],
      [ True, False,  True, False, False],
      [False, False, False,  True, False]],

     [[ True, False, False, False,  True],
      [ True,  True,  True,  True,  True],
      [ True,  True,  True,  True,  True],
      [False, False, False,  True, False]]]

test_greater_equal_uint8

Node:
  GreaterOrEqual(x, y) -> (greater_equal)
Inputs:
  x: shape=(3, 4, 5), dtype=uint8
    [[[18, 15,  2, 10, 19],
      [19, 13, 17, 23,  8],
      [15,  6, 12,  1,  1],
      [13, 13,  4, 16, 15]],

     [[21, 10, 13, 19, 22],
      [14,  1, 22, 20,  3],
      [ 1, 21, 15,  5,  0],
      [18, 20, 11,  4, 17]],

     [[ 2, 23,  0,  6,  4],
      [10,  5, 23,  8, 10],
      [18,  0,  2, 15,  0],
      [11, 20,  4, 18,  6]]]
  y: shape=(3, 4, 5), dtype=uint8
    [[[ 9, 17,  5,  9,  1],
      [ 4,  2, 19,  4, 18],
      [ 2,  3, 22, 12, 10],
      [20,  3, 10, 20, 21]],

     [[ 9, 15, 18, 13, 13],
      [22, 21,  3, 19, 10],
      [10,  2,  2,  0, 17],
      [20, 15, 19, 12,  3]],

     [[22, 15,  0, 22, 21],
      [ 4, 19, 22,  6, 15],
      [ 5, 19, 21, 22, 23],
      [ 8, 23,  8,  3, 11]]]

Outputs:
  greater_equal: shape=(3, 4, 5), dtype=bool
    [[[ True, False, False,  True,  True],
      [ True,  True, False,  True, False],
      [ True,  True, False, False, False],
      [False,  True, False, False, False]],

     [[ True, False, False,  True,  True],
      [False, False,  True,  True, False],
      [False,  True,  True,  True, False],
      [False,  True, False, False,  True]],

     [[False,  True,  True, False, False],
      [ True, False,  True,  True, False],
      [ True, False, False, False, False],
      [ True, False, False,  True, False]]]

Differences with previous version (12)#

SchemaDiff: GreaterOrEqual (domain 'ai.onnx')

  • old version: 12

  • new version: 16

  • breaking: no

Type constraints:

  • changed ‘T’: added types: [‘tensor(bfloat16)’]

Version History#