Equal#
Domain:
ai.onnxSince version: 19
Returns the tensor resulted from performing the Equal 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 (non-complex) tensors. Allowed types: tensor(bfloat16), tensor(bool), tensor(double), tensor(float), tensor(float16), tensor(int16), tensor(int32), tensor(int64), tensor(int8), tensor(string), tensor(uint16), tensor(uint32), tensor(uint64), tensor(uint8).
T1: Constrain output to boolean tensor. Allowed types: tensor(bool).
Examples#
test_cc_equal
Node:
Equal(x, y) -> (z)
Inputs:
x: shape=(2, 2), dtype=float32
[[1., 2.],
[3., 4.]]
y: shape=(2, 2), dtype=float32
[[1., 5.],
[3., 0.]]
Outputs:
z: shape=(2, 2), dtype=bool
[[ True, False],
[ True, False]]
test_cc_equal_bcast
Node:
Equal(x, y) -> (z)
Inputs:
x: shape=(2, 2), dtype=float32
[[1., 2.],
[3., 4.]]
y: shape=(), dtype=float32
2.
Outputs:
z: shape=(2, 2), dtype=bool
[[False, True],
[False, False]]
test_cc_equal_bfloat16
Node:
Equal(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, False, True],
[False, False, False]]
test_cc_equal_double
Node:
Equal(x, y) -> (z)
Inputs:
x: shape=(3,), dtype=float64
[1., 2., 3.]
y: shape=(3,), dtype=float64
[1., 3., 3.]
Outputs:
z: shape=(3,), dtype=bool
[ True, False, True]
test_cc_equal_float16
Node:
Equal(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, False, True],
[False, False, False]]
test_cc_equal_int64
Node:
Equal(x, y) -> (z)
Inputs:
x: shape=(3,), dtype=int64
[1, 2, 3]
y: shape=(3,), dtype=int64
[1, 3, 3]
Outputs:
z: shape=(3,), dtype=bool
[ True, False, True]
test_equal
Node:
Equal(x, y) -> (equal)
Inputs:
x: shape=(3, 4, 5), dtype=int32
[[[ 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=int32
[[[-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:
equal: shape=(3, 4, 5), dtype=bool
[[[False, True, False, True, False],
[ True, False, True, True, True],
[ True, False, False, True, True],
[ True, False, False, True, False]],
[[False, False, False, False, True],
[ True, True, False, False, False],
[False, False, False, False, True],
[ True, False, True, True, False]],
[[False, False, True, True, True],
[False, True, True, True, True],
[False, True, True, False, False],
[False, True, True, False, False]]]
test_equal_bcast
Node:
Equal(x, y) -> (equal)
Inputs:
x: shape=(3, 4, 5), dtype=int32
[[[ 0, 0, 0, 1, -1],
[ 0, 0, 0, 0, 0],
[ 0, 0, -1, 0, 0],
[ 0, 0, -1, 0, 0]],
[[ 0, 0, 0, 0, 0],
[ 0, 0, -2, -1, 0],
[ 0, 0, 0, 0, 0],
[-1, 1, 1, 1, 0]],
[[ 0, 0, -1, 0, 0],
[ 0, 0, -1, -1, 0],
[ 0, 0, -1, 1, 0],
[-1, 0, 1, -1, 0]]]
y: shape=(5,), dtype=int32
[-1, 0, 0, 0, 1]
Outputs:
equal: shape=(3, 4, 5), dtype=bool
[[[False, True, True, False, False],
[False, True, True, True, False],
[False, True, False, True, False],
[False, True, False, True, False]],
[[False, True, True, True, False],
[False, True, False, False, False],
[False, True, True, True, False],
[ True, False, False, False, False]],
[[False, True, False, True, False],
[False, True, False, False, False],
[False, True, False, False, False],
[ True, True, False, False, False]]]
test_equal_int16
Node:
Equal(x, y) -> (equal)
Inputs:
x: shape=(3, 4, 5), dtype=int16
[[[ 1, 0, 0, 0, -1],
[ 0, 0, 0, 0, 0],
[ 0, -1, 0, 1, 0],
[ 0, 0, 1, 0, 0]],
[[ 0, -2, 0, 0, 0],
[ 1, 0, 0, 0, 0],
[ 0, 1, 1, 0, 0],
[ 1, 0, 0, 0, 0]],
[[-1, 1, -2, 0, 1],
[-1, 0, 2, 0, 1],
[ 1, 0, 0, 0, 0],
[ 0, 0, 0, 0, 0]]]
y: shape=(3, 4, 5), dtype=int16
[[[ 0, -1, 1, 0, 0],
[ 0, 0, 0, 1, 0],
[-1, -1, 0, 1, 0],
[ 0, 0, 1, -1, 1]],
[[ 0, -1, 0, 1, 0],
[ 0, 0, 1, 0, 1],
[ 0, 1, 0, -1, -1],
[ 0, 0, 0, 0, 1]],
[[ 0, 0, -2, 0, 0],
[ 0, 0, 0, 1, 1],
[ 0, 0, 0, 1, 0],
[-1, 0, 0, 0, 0]]]
Outputs:
equal: shape=(3, 4, 5), dtype=bool
[[[False, False, False, True, False],
[ True, True, True, False, True],
[False, True, True, True, True],
[ True, True, True, False, False]],
[[ True, False, True, False, True],
[False, True, False, True, False],
[ True, True, False, False, False],
[False, True, True, True, False]],
[[False, False, True, True, False],
[False, True, False, False, True],
[False, True, True, False, True],
[False, True, True, True, True]]]
test_equal_int8
Node:
Equal(x, y) -> (equal)
Inputs:
x: shape=(3, 4, 5), dtype=int8
[[[ 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=int8
[[[ 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:
equal: shape=(3, 4, 5), dtype=bool
[[[ True, True, False, True, False],
[False, False, True, True, False],
[False, True, False, False, True],
[ True, False, True, True, True]],
[[ True, False, False, False, True],
[False, False, True, True, False],
[False, True, True, True, True],
[ True, True, True, True, False]],
[[ True, True, False, True, False],
[False, True, True, True, False],
[False, False, False, True, False],
[False, False, True, False, False]]]
test_equal_string
Node:
Equal(x, y) -> (equal)
Inputs:
x: shape=(2,), dtype=object
['string1', 'string2']
y: shape=(2,), dtype=object
['string1', 'string3']
Outputs:
equal: shape=(2,), dtype=bool
[ True, False]
test_equal_string_broadcast
Node:
Equal(x, y) -> (equal)
Inputs:
x: shape=(2,), dtype=object
['string1', 'string2']
y: shape=(1,), dtype=object
['string1']
Outputs:
equal: shape=(2,), dtype=bool
[ True, False]
test_equal_uint16
Node:
Equal(x, y) -> (equal)
Inputs:
x: shape=(3, 4, 5), dtype=uint16
[[[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=uint16
[[[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:
equal: shape=(3, 4, 5), dtype=bool
[[[False, False, False, False, False],
[False, False, False, False, False],
[False, False, False, True, False],
[ True, False, False, False, False]],
[[False, False, False, False, False],
[False, False, False, False, False],
[False, False, False, False, True],
[False, False, False, False, False]],
[[False, False, False, False, False],
[False, False, False, False, False],
[False, False, False, True, False],
[False, False, False, True, False]]]
test_equal_uint32
Node:
Equal(x, y) -> (equal)
Inputs:
x: shape=(3, 4, 5), dtype=uint32
[[[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=uint32
[[[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:
equal: shape=(3, 4, 5), dtype=bool
[[[False, False, False, False, False],
[False, False, False, True, False],
[False, False, False, False, False],
[False, False, False, False, False]],
[[False, False, False, False, False],
[False, False, False, False, False],
[False, False, False, False, False],
[False, False, False, False, False]],
[[False, False, False, False, False],
[False, False, False, False, False],
[False, False, False, False, False],
[ True, False, False, False, False]]]
test_equal_uint64
Node:
Equal(x, y) -> (equal)
Inputs:
x: shape=(3, 4, 5), dtype=uint64
[[[13, 23, 15, 8, 6],
[19, 15, 13, 9, 2],
[15, 13, 22, 17, 17],
[ 7, 2, 23, 10, 19]],
[[23, 14, 0, 3, 14],
[14, 17, 13, 17, 2],
[14, 0, 13, 16, 7],
[ 3, 13, 14, 15, 11]],
[[23, 10, 17, 2, 9],
[ 1, 10, 1, 2, 1],
[16, 19, 13, 10, 10],
[ 5, 3, 17, 6, 3]]]
y: shape=(3, 4, 5), dtype=uint64
[[[19, 21, 14, 18, 12],
[19, 21, 16, 22, 11],
[ 5, 22, 11, 18, 21],
[ 6, 9, 2, 4, 12]],
[[23, 0, 19, 4, 18],
[14, 4, 11, 1, 7],
[15, 23, 12, 15, 18],
[16, 10, 12, 14, 13]],
[[21, 12, 12, 3, 20],
[12, 18, 6, 5, 20],
[20, 1, 2, 17, 22],
[ 1, 21, 7, 9, 15]]]
Outputs:
equal: shape=(3, 4, 5), dtype=bool
[[[False, False, False, False, False],
[ True, False, False, False, False],
[False, False, False, False, False],
[False, False, False, False, False]],
[[ True, False, False, False, False],
[ True, False, False, False, False],
[False, False, False, False, False],
[False, False, False, False, False]],
[[False, False, False, False, False],
[False, False, False, False, False],
[False, False, False, False, False],
[False, False, False, False, False]]]
test_equal_uint8
Node:
Equal(x, y) -> (equal)
Inputs:
x: shape=(3, 4, 5), dtype=uint8
[[[ 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=uint8
[[[ 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:
equal: shape=(3, 4, 5), dtype=bool
[[[False, False, False, False, False],
[False, False, True, False, False],
[False, False, False, False, False],
[False, False, False, False, False]],
[[False, False, False, False, True],
[False, False, False, False, True],
[False, False, False, False, False],
[False, True, False, False, False]],
[[False, False, True, False, False],
[ True, False, False, False, False],
[False, False, False, False, False],
[False, False, False, False, False]]]
Differences with previous version (13)#
SchemaDiff: Equal (domain 'ai.onnx')
old version: 13
new version: 19
breaking: no
Type constraints:
changed ‘T’: added types: [‘tensor(string)’]