HardSigmoid¶
HardSigmoid - 22¶
Version¶
name: HardSigmoid (GitHub)
domain:
mainsince_version:
22function:
Truesupport_level:
SupportType.COMMONshape inference:
True
This version of the operator has been available since version 22.
Summary¶
HardSigmoid takes one input data (Tensor<T>) and produces one output data (Tensor<T>) where the HardSigmoid function, y = max(0, min(1, alpha * x + beta)), is applied to the tensor elementwise.
Function Body¶
The function definition for this operator.
<
domain: "",
opset_import: ["" : 18]
>
HardSigmoid <beta,alpha>(X) => (Y)
{
Alpha = Constant <value_float: float = @alpha> ()
AlphaCast = CastLike (Alpha, X)
Beta = Constant <value_float: float = @beta> ()
BetaCast = CastLike (Beta, X)
Zero = Constant <value: tensor = float {0}> ()
ZeroCast = CastLike (Zero, X)
One = Constant <value: tensor = float {1}> ()
OneCast = CastLike (One, X)
AlphaMulX = Mul (X, AlphaCast)
AlphaMulXAddBeta = Add (AlphaMulX, BetaCast)
MinOneOrAlphaMulXAddBeta = Min (AlphaMulXAddBeta, OneCast)
Y = Max (MinOneOrAlphaMulXAddBeta, ZeroCast)
}
Attributes¶
alpha - FLOAT (default is
0.2):Value of alpha.
beta - FLOAT (default is
0.5):Value of beta.
Inputs¶
X (heterogeneous) - T:
Input tensor
Outputs¶
Y (heterogeneous) - T:
Output tensor
Type Constraints¶
T in (
tensor(bfloat16),tensor(double),tensor(float),tensor(float16)):Constrain input and output types to float tensors.
Examples¶
default¶
import numpy as np
import onnx
node = onnx.helper.make_node(
"HardSigmoid", inputs=["x"], outputs=["y"], alpha=0.5, beta=0.6
)
x = np.array([-1, 0, 1]).astype(np.float32)
y = np.clip(x * 0.5 + 0.6, 0, 1) # expected output [0.1, 0.6, 1.]
expect(node, inputs=[x], outputs=[y], name="test_hardsigmoid_example")
x = np.random.randn(3, 4, 5).astype(np.float32)
y = np.clip(x * 0.5 + 0.6, 0, 1)
expect(node, inputs=[x], outputs=[y], name="test_hardsigmoid")
_hardsigmoid_default¶
import numpy as np
import onnx
default_alpha = 0.2
default_beta = 0.5
node = onnx.helper.make_node(
"HardSigmoid",
inputs=["x"],
outputs=["y"],
)
x = np.random.randn(3, 4, 5).astype(np.float32)
y = np.clip(x * default_alpha + default_beta, 0, 1)
expect(node, inputs=[x], outputs=[y], name="test_hardsigmoid_default")
HardSigmoid - 6¶
Version¶
name: HardSigmoid (GitHub)
domain:
mainsince_version:
6function:
Truesupport_level:
SupportType.COMMONshape inference:
True
This version of the operator has been available since version 6.
Summary¶
HardSigmoid takes one input data (Tensor<T>) and produces one output data (Tensor<T>) where the HardSigmoid function, y = max(0, min(1, alpha * x + beta)), is applied to the tensor elementwise.
Function Body¶
The function definition for this operator.
<
domain: "",
opset_import: ["" : 18]
>
HardSigmoid <beta,alpha>(X) => (Y)
{
Alpha = Constant <value_float: float = @alpha> ()
AlphaCast = CastLike (Alpha, X)
Beta = Constant <value_float: float = @beta> ()
BetaCast = CastLike (Beta, X)
Zero = Constant <value: tensor = float {0}> ()
ZeroCast = CastLike (Zero, X)
One = Constant <value: tensor = float {1}> ()
OneCast = CastLike (One, X)
AlphaMulX = Mul (X, AlphaCast)
AlphaMulXAddBeta = Add (AlphaMulX, BetaCast)
MinOneOrAlphaMulXAddBeta = Min (AlphaMulXAddBeta, OneCast)
Y = Max (MinOneOrAlphaMulXAddBeta, ZeroCast)
}
Attributes¶
alpha - FLOAT (default is
0.2):Value of alpha.
beta - FLOAT (default is
0.5):Value of beta.
Inputs¶
X (heterogeneous) - T:
Input tensor
Outputs¶
Y (heterogeneous) - T:
Output tensor
Type Constraints¶
T in (
tensor(double),tensor(float),tensor(float16)):Constrain input and output types to float tensors.
HardSigmoid - 1¶
Version¶
name: HardSigmoid (GitHub)
domain:
mainsince_version:
1function:
Falsesupport_level:
SupportType.COMMONshape inference:
False
This version of the operator has been available since version 1.
Summary¶
HardSigmoid takes one input data (Tensor<T>) and produces one output data (Tensor<T>) where the HardSigmoid function, y = max(0, min(1, alpha * x + beta)), is applied to the tensor elementwise.
Attributes¶
alpha - FLOAT (default is
0.2):Value of alpha default to 0.2
beta - FLOAT (default is
0.5):Value of beta default to 0.5
consumed_inputs - INTS :
legacy optimization attribute.
Inputs¶
X (heterogeneous) - T:
Input tensor
Outputs¶
Y (heterogeneous) - T:
Output tensor
Type Constraints¶
T in (
tensor(double),tensor(float),tensor(float16)):Constrain input and output types to float tensors.