ttnn.hardmish

ttnn.hardmish(input_tensor: ttnn.Tensor, *, memory_config: ttnn.MemoryConfig = None, output_tensor: ttnn.Tensor = None, sub_core_grids: ttnn.CoreRangeSet = None) ttnn.Tensor

Applies hardmish to input_tensor element-wise.

\[\mathrm{{output\_tensor}}_i = \mathrm{{input\_tensor}}_i \times \frac{{\min(\max(\mathrm{{input\_tensor}}_i + 2, 0), 2)}}{{2}}\]
Parameters:

input_tensor (ttnn.Tensor) – the input tensor. [Supports finite inputs; for non-finite values, -inf yields NaN due to the formula’s -inf * 0 term.]

Keyword Arguments:
  • memory_config (ttnn.MemoryConfig, optional) – memory configuration for the operation. Defaults to None.

  • output_tensor (ttnn.Tensor, optional) – preallocated output tensor. Defaults to None.

  • sub_core_grids (ttnn.CoreRangeSet, optional) – sub core grids for the operation. Defaults to None.

Returns:

ttnn.Tensor – the output tensor.

Note

Supported dtypes and layouts:

Dtypes

Layouts

BFLOAT16, BFLOAT8_B, FLOAT32

TILE, ROW_MAJOR

Computes the Hard Mish activation function. Hard Mish is a computationally efficient approximation of the Mish activation function.

Example

# Create a tensor with specific values
tensor = ttnn.from_torch(
    torch.tensor([[-2.0, -1.0], [1.0, 2.0]], dtype=torch.bfloat16), layout=ttnn.TILE_LAYOUT, device=device
)

# Apply Hard Mish activation function
output = ttnn.hardmish(tensor)
logger.info(f"Hard Mish: {output}")