Greater#

  • Domain: ai.onnx

  • Since version: 13

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

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

test_cc_greater_bcast

Node:
  Greater(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_bfloat16

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

test_cc_greater_float16

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

test_greater

Node:
  Greater(x, y) -> (greater)
Inputs:
  x: shape=(3, 4, 5), dtype=float32
    [[[-0.04804087, -0.30510044, -1.6544707 , -0.07651462,  0.15347514],
      [-0.8623296 ,  1.2285718 , -1.4362634 ,  0.62051475,  0.46972257],
      [-2.3047967 ,  0.39351684,  0.8641912 , -0.8612014 , -0.6527527 ],
      [ 0.19660589,  0.5224583 , -0.7622916 , -0.81308407, -0.2525546 ]],

     [[ 0.09045612, -0.20432594,  0.22601509, -0.95009905,  1.013518  ],
      [ 0.36961022, -1.081151  ,  1.2164041 ,  1.0255347 ,  0.13125335],
      [-0.1453436 ,  0.997203  , -1.3772132 ,  1.8190564 , -1.2004651 ],
      [ 1.1938328 ,  1.2253742 , -1.137825  ,  0.645201  , -1.9091352 ]],

     [[ 1.5557947 ,  0.88667655, -0.73243964, -1.0173167 ,  0.24505444],
      [ 2.4330087 ,  0.948794  ,  0.96979547, -2.5747623 , -0.3217281 ],
      [-0.81137896,  0.45256877,  0.02869228, -1.1839191 , -1.3251646 ],
      [-0.6303364 , -1.3884656 ,  0.78481734, -1.180762  ,  0.08010377]]]
  y: shape=(3, 4, 5), dtype=float32
    [[[ 1.7542539e+00,  1.2595381e-01,  2.7244222e-01,  1.5426704e-01,
        1.6261207e+00],
      [-3.8990438e-01, -1.2887475e+00,  4.2111769e-01,  2.2889955e+00,
       -1.4774142e-01],
      [-1.5192430e-01,  1.7868859e+00, -1.3853636e+00,  2.5799441e-01,
       -1.4348719e-01],
      [-2.5402310e-01,  1.2493013e+00,  9.4376206e-02, -8.1307483e-01,
        8.5687798e-01]],

     [[-6.0505110e-01,  7.5472873e-01, -2.5019467e-01, -2.1011617e+00,
        3.6517543e-01],
      [-2.6853949e-01, -1.3520234e+00,  5.1533467e-01, -1.8550395e+00,
        1.3554487e-01],
      [-1.6063135e+00,  1.5684804e+00,  1.3375679e+00, -1.2752861e+00,
       -1.2536888e-01],
      [ 1.0870316e+00, -6.3893634e-01, -1.4576868e+00, -1.0812014e+00,
       -3.0740843e+00]],

     [[-1.5012600e+00,  7.2199064e-01,  3.8688444e-02,  1.8910414e-01,
       -1.1433129e+00],
      [ 1.6144730e+00,  1.7268082e+00,  8.7535965e-01, -6.6721655e-02,
        6.0414374e-01],
      [-1.7328656e-03,  3.5138649e-01,  6.2776333e-01,  1.6265903e+00,
        7.4280053e-01],
      [ 6.3700020e-01,  8.0218631e-01,  1.0023049e+00, -1.3831070e-01,
        1.8957044e+00]]]

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

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

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

test_greater_bcast

Node:
  Greater(x, y) -> (greater)
Inputs:
  x: shape=(3, 4, 5), dtype=float32
    [[[ 0.8741822 ,  0.553631  , -1.1274734 , -0.8376671 , -0.40274566],
      [-1.941035  ,  0.03275626, -0.18707356,  0.6395014 , -0.72187763],
      [ 1.4065468 , -2.193512  , -1.1618237 ,  0.2559442 ,  2.2077847 ],
      [-0.35174358, -0.7595853 ,  1.283599  , -2.3089054 , -0.5201577 ]],

     [[-0.59689295, -0.6146078 , -0.47808528, -0.15212394, -1.6787723 ],
      [ 0.16855474,  0.24434562,  1.9536088 , -1.3060435 , -0.513753  ],
      [-1.3100123 ,  2.4454045 , -0.18710747,  0.35884383, -1.4523033 ],
      [ 0.9135257 , -1.6895586 ,  0.23634721, -0.11271938,  0.15884553]],

     [[-0.3383164 , -0.17695117, -2.064649  ,  0.26156715,  2.2557833 ],
      [-0.27379173, -1.7714736 ,  0.8415886 , -0.04499549,  0.09789849],
      [-1.2850043 , -0.57014376,  0.39273298,  1.2920564 , -0.1401397 ],
      [-1.9270529 , -1.8151977 , -0.04628848,  1.4735022 , -0.06726861]]]
  y: shape=(5,), dtype=float32
    [ 1.4420623 , -0.9769679 ,  0.03334304, -0.0760201 , -0.9492963 ]

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

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

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

test_greater_int16

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

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

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

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

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

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

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

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

test_greater_int8

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

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

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

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

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

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

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

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

test_greater_uint16

Node:
  Greater(x, y) -> (greater)
Inputs:
  x: shape=(3, 4, 5), dtype=uint16
    [[[23, 10,  6,  1,  7],
      [ 4,  4,  5,  4,  8],
      [ 5,  0,  0,  4,  4],
      [15,  7,  7,  3, 10]],

     [[ 8, 15,  2,  5,  2],
      [ 5, 10, 20, 21, 18],
      [11, 14,  6, 10,  2],
      [ 6,  2,  8, 11, 20]],

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

     [[ 0, 20,  5, 12, 16],
      [15,  1,  4, 20, 15],
      [15, 11,  8,  4, 17],
      [ 3, 21, 13, 23,  9]],

     [[15,  9, 18, 12, 20],
      [13, 22, 13,  6, 11],
      [14,  0, 13,  4, 20],
      [ 6, 12,  9,  5, 23]]]

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

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

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

test_greater_uint32

Node:
  Greater(x, y) -> (greater)
Inputs:
  x: shape=(3, 4, 5), dtype=uint32
    [[[20,  8,  6,  5, 22],
      [ 3, 18, 18,  7, 16],
      [ 1,  1, 22,  3,  0],
      [ 1,  7,  0,  1,  8]],

     [[15, 14,  9,  3,  7],
      [14,  1, 12, 18, 12],
      [19, 16, 14, 23,  1],
      [15, 18, 23, 20, 22]],

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

     [[ 5,  4,  3, 19, 23],
      [ 3,  4,  2,  9,  0],
      [17,  8, 17,  1, 13],
      [12,  5,  5,  9, 23]],

     [[16,  7, 10,  2, 23],
      [ 1, 10,  7, 20, 10],
      [19, 22,  1, 18, 13],
      [ 0, 15,  3,  0,  3]]]

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

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

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

test_greater_uint64

Node:
  Greater(x, y) -> (greater)
Inputs:
  x: shape=(3, 4, 5), dtype=uint64
    [[[ 9, 20,  1, 11, 13],
      [14, 18,  0,  3, 15],
      [ 4, 12, 13, 22,  7],
      [12, 14, 17, 16,  3]],

     [[ 2,  2,  8,  3, 11],
      [ 4,  3, 10,  1, 10],
      [10,  3,  7, 17, 11],
      [ 7, 18, 16, 13, 12]],

     [[ 8, 12, 10,  5, 14],
      [23,  2, 10, 20, 18],
      [ 7, 14,  2, 19, 13],
      [ 2,  9, 12,  2, 13]]]
  y: shape=(3, 4, 5), dtype=uint64
    [[[13, 19, 18, 12, 10],
      [ 6, 13, 20, 13, 14],
      [23, 22, 14,  7, 20],
      [ 2,  5, 21, 15,  0]],

     [[ 0,  1, 21,  1,  8],
      [ 9, 13,  7,  7,  3],
      [13, 22,  5, 22, 13],
      [19, 17, 17, 16,  4]],

     [[10, 17,  4,  1, 11],
      [ 2, 18,  7, 22, 23],
      [ 9,  8,  4, 19, 13],
      [ 3,  1, 18, 16, 10]]]

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

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

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

test_greater_uint8

Node:
  Greater(x, y) -> (greater)
Inputs:
  x: shape=(3, 4, 5), dtype=uint8
    [[[ 3, 10, 23,  5, 12],
      [ 7, 19,  5, 18,  3],
      [21,  3, 14, 12, 13],
      [ 2,  3,  1,  4,  8]],

     [[ 3,  5, 15, 13, 12],
      [10,  7, 20, 14, 18],
      [12,  7, 20,  5, 20],
      [ 1,  0, 19,  5,  2]],

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

     [[ 0,  8,  0, 21,  8],
      [ 2,  5,  4, 22,  8],
      [19,  6, 19, 22, 14],
      [ 2, 21, 13,  3,  3]],

     [[17,  7,  5, 21, 21],
      [12, 10,  5, 10,  2],
      [ 7,  7, 20, 16, 13],
      [20,  0, 15, 20, 16]]]

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

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

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

Differences with previous version (9)#

SchemaDiff: Greater (domain 'ai.onnx')

  • old version: 9

  • new version: 13

  • breaking: no

Type constraints:

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

Version History#