Python-torch 之torch.clamp() 函数解析

2023-05-20 05:05:49 python

Python-torch torch.clamp() 函数解析

1. 解析

torch.clamp(input, min, max, out=None) → Tensor

1)参数列表

  • input:输入张量;
  • min:限制范围下限;
  • max:限制范围上限;
  • out:输出张量。

2)功能

  • clamp()函数的功能将输入input张量每个元素的值压缩到区间 [min,max],并返回结果到一个新张量。

3)举例

a=torch.randint(low=0,high=10,size=(10,1))
print(a)
b=torch.clamp(a,3,9)
print(b)

输出:

tensor([[7],
        [5],
        [5],
        [4],
        [4],
        [9],
        [0],
        [1],
        [4],
        [1]])
tensor([[7],
        [5],
        [5],
        [4],
        [4],
        [9],
        [3],
        [3],
        [4],
        [3]])

2. 对比

clamp_() 与clamp() 的区别:

  • PyTorch中,一般来说如果对tensor的一个函数后加上了下划线,则表明这是一个in-place类型。
  • in-place类型是指,当在一个tensor上操作了之后,是直接修改了这个tensor,而不是返回一个新的tensor并不修改旧的tensor。 

扩展:torch.clamp()函数

torch.clamp()函数用于对输入张量进行截断操作,将张量中的每个元素限制在指定的范围内。

其语法为:

torch.clamp(input, min, max, out=None) -> Tensor

其中,参数的含义如下:

  • input:输入张量。
  • min:张量中的最小值。如果为None,则表示不对最小值进行限制。
  • max:张量中的最大值。如果为None,则表示不对最大值进行限制。
  • out:输出张量。
  • torch.clamp()函数返回一个新的张量,其中每个元素都被截断在[min, max]的范围内。如果min或max为None,则对应的限制条件被忽略。

下面是一个使用torch.clamp()函数的示例:

import torch
x = torch.randn(2, 3)
print(x)
y = torch.clamp(x, min=-0.5, max=0.5)
print(y)

输出结果为:

tensor([[-0.3138, -0.1604, -0.4374],
        [-1.0861, -0.2837,  1.1688]])
tensor([[-0.3138, -0.1604, -0.4374],
        [-0.5000, -0.2837,  0.5000]])

可以看到,torch.clamp()函数将x张量中的元素限制在了[-0.5, 0.5]的范围内。

到此这篇关于Python-torch 之torch.clamp() 函数解析的文章就介绍到这了,更多相关torch.clamp() 函数内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

相关文章