torch.clamp()——数组的夹紧
torch.clamp(input, min=None, max=None, *, out=None) → Tensor
功能:将数组的所有元素夹紧到范围[min,max]内,相当于经过了函数
f
(
x
)
=
{
m
i
n
,
i
f
x
≤
m
i
n
x
,
i
f
m
i
n
<
x
<
m
a
x
m
a
x
,
i
f
x
≥
m
a
x
f(x)=\left \{ \begin{matrix} min,\quad &if\quad x≤min \\ x,&if\quad min<x<max \\ max,\quad &if\quad x≥max \\ \end {matrix} \right.
f(x)=⎩
⎨
⎧min,x,max,ifx≤minifmin<x<maxifx≥max
的映射。
输入:
input
:输入张量min
:范围的最小值,如果不指定的话,会默认无下界max
:范围的最大值,如果不指定的话,会默认无上界
注意:
- 输入的张量对形状无要求,可以夹紧任意形状的张量数组。
- 输入的
min
与max
必须是单个值,不能是序列 - torch.clamp()的功能也可以用a.clamp()方法实现,后者默认夹紧数组a
代码案例
import torch
a=torch.arange(10).view(2,5)
b=torch.clamp(a,3,6)
print(a)
print(b)
输出
# 原始数组
tensor([[0, 1, 2, 3, 4],
[5, 6, 7, 8, 9]])
# 数据规范到3到6之间
tensor([[3, 3, 3, 3, 4],
[5, 6, 6, 6, 6]])
官方文档
torch.clamp():https://pytorch.org/docs/stable/generated/torch.clamp.html?highlight=torch%20clamp#torch.clamp
点个赞支持一下吧