mindspore.nn.Hardtanh
- class mindspore.nn.Hardtanh(min_val=- 1.0, max_val=1.0)[源代码]
- 逐元素计算Hardtanh函数。Hardtanh函数定义为: \[\begin{split}\text{Hardtanh}(x) = \begin{cases} 1, & \text{ if } x > 1; \\ -1, & \text{ if } x < -1; \\ x, & \text{ otherwise. } \end{cases}\end{split}\]- 线性区域范围 \([-1, 1]\) 可以使用 min_val 和 max_val 进行调整。 - Hardtanh函数图:   - 说明 - 在Ascend硬件上,float16数据类型场景下会有偶现的精度误差较大的问题。 - 参数:
- min_val (Union[int, float]) - 线性区域范围的最小值。默认值: - -1.0。
- max_val (Union[int, float]) - 线性区域范围的最大值。默认值: - 1.0。
 
- 输入:
- x (Tensor) - 数据类型为float16或float32的Tensor。在CPU和Ascend平台上支持零到七维。在GPU平台上支持零到四维。 
 
- 输出:
- Tensor,数据类型和shape与 x 的相同。 
- 异常:
- TypeError - x 不是Tensor。 
- TypeError - x 的数据类型既不是float16也不是float32。 
- TypeError - min_val 的数据类型既不是int也不是float。 
- TypeError - max_val 的数据类型既不是int也不是float。 
- ValueError - min_val 不小于 max_val 。 
 
- 支持平台:
- Ascend- GPU- CPU
 - 样例: - >>> import mindspore >>> from mindspore import Tensor, nn >>> import numpy as np >>> x = Tensor(np.array([-1, -2, 0, 2, 1]), mindspore.float16) >>> hardtanh = nn.Hardtanh(min_val=-1.0, max_val=1.0) >>> output = hardtanh(x) >>> print(output) [-1. -1. 0. 1. 1.]