Or¶
Or - 7¶
Version¶
name: Or (GitHub)
domain:
mainsince_version:
7function:
Falsesupport_level:
SupportType.COMMONshape inference:
True
This version of the operator has been available since version 7.
Summary¶
Returns the tensor resulted from performing the or logical operation
elementwise on the input tensors A and B (with Numpy-style broadcasting support).
This operator supports multidirectional (i.e., Numpy-style) broadcasting; for more details please check Broadcasting in ONNX.
Inputs¶
A (heterogeneous) - T:
First input operand for the logical operator.
B (heterogeneous) - T:
Second input operand for the logical operator.
Outputs¶
C (heterogeneous) - T1:
Result tensor.
Type Constraints¶
T in (
tensor(bool)):Constrain input to boolean tensor.
T1 in (
tensor(bool)):Constrain output to boolean tensor.
Examples¶
default¶
import numpy as np
import onnx
node = onnx.helper.make_node(
"Or",
inputs=["x", "y"],
outputs=["or"],
)
# 2d
x = (np.random.randn(3, 4) > 0).astype(bool)
y = (np.random.randn(3, 4) > 0).astype(bool)
z = np.logical_or(x, y)
expect(node, inputs=[x, y], outputs=[z], name="test_or2d")
# 3d
x = (np.random.randn(3, 4, 5) > 0).astype(bool)
y = (np.random.randn(3, 4, 5) > 0).astype(bool)
z = np.logical_or(x, y)
expect(node, inputs=[x, y], outputs=[z], name="test_or3d")
# 4d
x = (np.random.randn(3, 4, 5, 6) > 0).astype(bool)
y = (np.random.randn(3, 4, 5, 6) > 0).astype(bool)
z = np.logical_or(x, y)
expect(node, inputs=[x, y], outputs=[z], name="test_or4d")
_or_broadcast¶
import numpy as np
import onnx
node = onnx.helper.make_node(
"Or",
inputs=["x", "y"],
outputs=["or"],
)
# 3d vs 1d
x = (np.random.randn(3, 4, 5) > 0).astype(bool)
y = (np.random.randn(5) > 0).astype(bool)
z = np.logical_or(x, y)
expect(node, inputs=[x, y], outputs=[z], name="test_or_bcast3v1d")
# 3d vs 2d
x = (np.random.randn(3, 4, 5) > 0).astype(bool)
y = (np.random.randn(4, 5) > 0).astype(bool)
z = np.logical_or(x, y)
expect(node, inputs=[x, y], outputs=[z], name="test_or_bcast3v2d")
# 4d vs 2d
x = (np.random.randn(3, 4, 5, 6) > 0).astype(bool)
y = (np.random.randn(5, 6) > 0).astype(bool)
z = np.logical_or(x, y)
expect(node, inputs=[x, y], outputs=[z], name="test_or_bcast4v2d")
# 4d vs 3d
x = (np.random.randn(3, 4, 5, 6) > 0).astype(bool)
y = (np.random.randn(4, 5, 6) > 0).astype(bool)
z = np.logical_or(x, y)
expect(node, inputs=[x, y], outputs=[z], name="test_or_bcast4v3d")
# 4d vs 4d
x = (np.random.randn(1, 4, 1, 6) > 0).astype(bool)
y = (np.random.randn(3, 1, 5, 6) > 0).astype(bool)
z = np.logical_or(x, y)
expect(node, inputs=[x, y], outputs=[z], name="test_or_bcast4v4d")
Or - 1¶
Version¶
name: Or (GitHub)
domain:
mainsince_version:
1function:
Falsesupport_level:
SupportType.COMMONshape inference:
True
This version of the operator has been available since version 1.
Summary¶
Returns the tensor resulted from performing the or logical operation
elementwise on the input tensors A and B.
If broadcasting is enabled, the right-hand-side argument will be broadcasted
to match the shape of left-hand-side argument. See the doc of Add for a
detailed description of the broadcasting rules.
Attributes¶
axis - INT :
If set, defines the broadcast dimensions.
broadcast - INT (default is
0):Enable broadcasting
Inputs¶
A (heterogeneous) - T:
Left input tensor for the logical operator.
B (heterogeneous) - T:
Right input tensor for the logical operator.
Outputs¶
C (heterogeneous) - T1:
Result tensor.
Type Constraints¶
T in (
tensor(bool)):Constrain input to boolean tensor.
T1 in (
tensor(bool)):Constrain output to boolean tensor.