torch.clamp(input, min, max, out=None) → Tensor
Clamps all elements in input into the range [ min, max ]. Letting min_value and max_value be min and max, respectively, this returns:
将input内的值限定在(min,max)区间内。
y i = min ( max ( x i , min_value i ) , max_value i ) y_i = \min(\max(x_i, \text{min\_value}_i), \text{max\_value}_i) yi=min(max(xi,min_valuei),max_valuei)
If min is None, there is no lower bound. Or, if max is None there is no upper bound.
NOTE
If min is greater than max torch.clamp(…, min, max) sets all elements in input to the value of max.
Parameters
-
input (Tensor) – the input tensor.
-
min (Number or Tensor, optional) – lower-bound of the range to be clamped to
-
max (Number or Tensor, optional) – upper-bound of the range to be clamped to
Keyword Arguments
- out (Tensor, optional) – the output tensor.
Example:
>>> a = torch.randn(4)
>>> a
tensor([-1.7120, 0.1734, -0.0478, -0.0922])
>>> torch.clamp(a, min=-0.5, max=0.5)
tensor([-0.5000, 0.1734, -0.0478, -0.0922])
>>> min = torch.linspace(-1, 1, steps=4)
>>> torch.clamp(a, min=min)
tensor([-1.0000, 0.1734, 0.3333, 1.0000])