HardSigmoidBackward#

General#

HardSigmoidBackward operation computes gradient for HardSigmoid. The formula is defined as follows:

\[\begin{split}diff\_src = \begin{cases} diff\_dst \cdot \alpha & \text{if}\ 0 < \alpha src + \beta < 1 \\ 0 & \text{otherwise}\ \end{cases}\end{split}\]

Operation attributes#

Attribute Name

Description

Value Type

Supported Values

Required or Optional

alpha

\(\alpha\) in the formula.

f32

Arbitrary f32 value.

Required

beta

\(\beta\) in the formula.

f32

Arbitrary f32 value.

Required

Execution arguments#

The inputs and outputs must be provided according to the index order shown below when constructing an operation.

Inputs#

Index

Argument Name

Required or Optional

0

src

Required

1

diff_dst

Required

Outputs#

Index

Argument Name

Required or Optional

0

diff_src

Required

Supported data types#

HardSigmoidBackward operation supports the following data type combinations.

Src

Diff_dst

Diff_src

f32

f32

f32

f16

f16

f16

bf16

bf16

bf16

Implementation Notes#

HardSigmoidBackward supports in-place operations, meaning that diff_dst can be used as both input and output (diff_src). In case of in-place operation, the original diff_dst data will be overwritten. This support is limited to cases when data types of diff_dst and diff_src are identical. Use in-place operations whenever possible for performance.