Pytorch常用函数(2)——数学操作

🍅 写在前面
👨‍🎓 博主介绍:大家好,这里是hyk写算法了吗,一枚致力于学习算法和人工智能领域的小菜鸟。
🔎个人主页:主页链接(欢迎各位大佬光临指导)
⭐️近期专栏:机器学习与深度学习
                       LeetCode算法实例
                       张量分解

torch.abs

torch.abs(input, out=None) → Tensor

计算输入张量的每个元素绝对值

例子:

>>> torch.abs(torch.FloatTensor([-1, -2, 3]))
FloatTensor([1, 2, 3])

torch.acos(input, out=None) → Tensor

返回一个新张量,包含输入张量每个元素的反余弦。
参数:
input (Tensor) – 输入张量
out (Tensor, optional) – 结果张量
例子:

>>> a = torch.randn(4)
>>> a

-0.6366
 0.2718
 0.4469
 1.3122
[torch.FloatTensor of size 4]

>>> torch.acos(a)
 2.2608
 1.2956
 1.1075
    nan
[torch.FloatTensor of size 4]

torch.add()

torch.add(input, value, out=None)

对输入张量input逐元素加上标量值value,并返回结果到一个新的张量out,即 out=tensor+value

如果输入input是FloatTensor or DoubleTensor类型,则value 必须为实数,否则须为整数。【译注:似乎并非如此,无关输入类型,value取整数、实数皆可。】
参数:
input (Tensor) – 输入张量
value (Number) – 添加到输入每个元素的数
out (Tensor, optional) – 结果张量

>>> a = torch.randn(4)
>>> a

 0.4050
-1.2227
 1.8688
-0.4185
[torch.FloatTensor of size 4]

>>> torch.add(a, 20)

 20.4050
 18.7773
 21.8688
 19.5815
[torch.FloatTensor of size 4]

torch.addcdiv

torch.addcdiv(tensor, value=1, tensor1, tensor2, out=None) → Tensor

用tensor2对tensor1逐元素相除,然后乘以标量值value 并加到tensor。

张量的形状不需要匹配,但元素数量必须一致。

如果输入是FloatTensor or DoubleTensor类型,则value 必须为实数,否则须为整数。

参数:

tensor (Tensor) – 张量,对 tensor1 ./ tensor 进行相加
value (Number, optional) – 标量,对 tensor1 ./ tensor2 进行相乘
tensor1 (Tensor) – 张量,作为被除数(分子)
tensor2 (Tensor) –张量,作为除数(分母)
out (Tensor, optional) – 输出张量
例子:

>>> t = torch.randn(2, 3)
>>> t1 = torch.randn(1, 6)
>>> t2 = torch.randn(6, 1)
>>> torch.addcdiv(t, 0.1, t1, t2)

 0.0122 -0.0188 -0.2354
 0.7396 -1.5721  1.2878
[torch.FloatTensor of size 2x3]

torch.addcmul

torch.addcmul(tensor, value=1, tensor1, tensor2, out=None) → Tensor

用tensor2对tensor1逐元素相乘,并对结果乘以标量值value然后加到tensor。 张量的形状不需要匹配,但元素数量必须一致。 如果输入是FloatTensor or DoubleTensor类型,则value 必须为实数,否则须为整数。

参数:

tensor (Tensor) – 张量,对tensor1 ./ tensor 进行相加
value (Number, optional) – 标量,对 tensor1 . tensor2 进行相乘
tensor1 (Tensor) – 张量,作为乘子1
tensor2 (Tensor) –张量,作为乘子2
out (Tensor, optional) – 输出张量
例子:

>>> t = torch.randn(2, 3)
>>> t1 = torch.randn(1, 6)
>>> t2 = torch.randn(6, 1)
>>> torch.addcmul(t, 0.1, t1, t2)

 0.0122 -0.0188 -0.2354
 0.7396 -1.5721  1.2878
[torch.FloatTensor of size 2x3]

torch.asin

torch.asin(input, out=None) → Tensor

返回一个新张量,包含输入input张量每个元素的反正弦函数

参数:

tensor (Tensor) – 输入张量
out (Tensor, optional) – 输出张量
例子:

>>> a = torch.randn(4)
>>> a
-0.6366
 0.2718
 0.4469
 1.3122
[torch.FloatTensor of size 4]

>>> torch.asin(a)
-0.6900
 0.2752
 0.4633
    nan
[torch.FloatTensor of size 4]

torch.atan

torch.atan(input, out=None) → Tensor

返回一个新张量,包含输入input张量每个元素的反正切函数

参数:

tensor (Tensor) – 输入张量
out (Tensor, optional) – 输出张量
例子:

>>> a = torch.randn(4)
>>> a
-0.6366
 0.2718
 0.4469
 1.3122
[torch.FloatTensor of size 4]

>>> torch.atan(a)
-0.5669
 0.2653
 0.4203
 0.9196
[torch.FloatTensor of size 4]

torch.ceil

torch.ceil(input, out=None) → Tensor

天井函数,对输入input张量每个元素向上取整, 即取不小于每个元素的最小整数,并返回结果到输出。

参数:

input (Tensor) – 输入张量
out (Tensor, optional) – 输出张量
例子:

>>> a = torch.randn(4)
>>> a

 1.3869
 0.3912
-0.8634
-0.5468
[torch.FloatTensor of size 4]

>>> torch.ceil(a)

 2
 1
-0
-0
[torch.FloatTensor of size 4]

torch.clamp

torch.clamp(input, min, max, out=None) → Tensor
将输入input张量每个元素的夹紧到区间 [min,max]
,并返回结果到一个新张量。

操作定义如下:

  | min, if x_i < min

y_i = | x_i, if min <= x_i <= max
| max, if x_i > max
如果输入是FloatTensor or DoubleTensor类型,则参数min max 必须为实数,否则须为整数。【译注:似乎并非如此,无关输入类型,min, max取整数、实数皆可。】

参数:

input (Tensor) – 输入张量
min (Number) – 限制范围下限
max (Number) – 限制范围上限
out (Tensor, optional) – 输出张量
例子:

>>> a = torch.randn(4)
>>> a

 1.3869
 0.3912
-0.8634
-0.5468
[torch.FloatTensor of size 4]

>>> torch.clamp(a, min=-0.5, max=0.5)

 0.5000
 0.3912
-0.5000
-0.5000
[torch.FloatTensor of size 4]

torch.cos

torch.cos(input, out=None) → Tensor

返回一个新张量,包含输入input张量每个元素的余弦。

参数:

input (Tensor) – 输入张量
out (Tensor, optional) – 输出张量
例子:

>>> a = torch.randn(4)
>>> a
-0.6366
 0.2718
 0.4469
 1.3122
[torch.FloatTensor of size 4]

>>> torch.cos(a)
 0.8041
 0.9633
 0.9018
 0.2557
[torch.FloatTensor of size 4]

torch.cosh

torch.cosh(input, out=None) → Tensor

返回一个新张量,包含输入input张量每个元素的双曲余弦。

参数:

input (Tensor) – 输入张量
out (Tensor, optional) – 输出张量
例子:

>>> a = torch.randn(4)
>>> a
-0.6366
 0.2718
 0.4469
 1.3122
[torch.FloatTensor of size 4]

>>> torch.cosh(a)
 1.2095
 1.0372
 1.1015
 1.9917
[torch.FloatTensor of size 4]

torch.div()

torch.div(input, value, out=None)

将input逐元素除以标量值value,并返回结果到输出张量out。 即 out=tensor/value
如果输入是FloatTensor or DoubleTensor类型,则参数 value 必须为实数,否则须为整数。【译注:似乎并非如此,无关输入类型,value取整数、实数皆可。】

参数:

input (Tensor) – 输入张量
value (Number) – 除数
out (Tensor, optional) – 输出张量
例子:

>>> a = torch.randn(5)
>>> a

-0.6147
-1.1237
-0.1604
-0.6853
 0.1063
[torch.FloatTensor of size 5]

>>> torch.div(a, 0.5)

-1.2294
-2.2474
-0.3208
-1.3706
 0.2126
[torch.FloatTensor of size 5]

torch.exp

torch.exp(tensor, out=None) → Tensor

返回一个新张量,包含输入input张量每个元素的指数。

参数:

input (Tensor) – 输入张量
out (Tensor, optional) – 输出张量

torch.floor(input, out=None) → Tensor

床函数: 返回一个新张量,包含输入input张量每个元素的floor,即不小于元素的最大整数。

参数:

input (Tensor) – 输入张量
out (Tensor, optional) – 输出张量
例子:

>>> a = torch.randn(4)
>>> a

 1.3869
 0.3912
-0.8634
-0.5468
[torch.FloatTensor of size 4]

>>> torch.floor(a)

 1
 0
-1
-1
[torch.FloatTensor of size 4]

torch.fmod

torch.fmod(input, divisor, out=None) → Tensor

计算除法余数。 除数与被除数可能同时含有整数和浮点数。此时,余数的正负与被除数相同。

参数: - input (Tensor) – 被除数 - divisor (Tensor or float) – 除数,一个数或与被除数相同类型的张量 - out (Tensor, optional) – 输出张量

例子:

>>> torch.fmod(torch.Tensor([-3, -2, -1, 1, 2, 3]), 2)
torch.FloatTensor([-1, -0, -1, 1, 0, 1])
>>> torch.fmod(torch.Tensor([1, 2, 3, 4, 5]), 1.5)
torch.FloatTensor([1.0, 0.5, 0.0, 1.0, 0.5])
参考: torch.remainder(), 计算逐元素余数, 相当于python 中的 % 操作符。

torch.frac

torch.frac(tensor, out=None) → Tensor

返回每个元素的分数部分。

例子:

>>> torch.frac(torch.Tensor([1, 2.5, -3.2])
torch.FloatTensor([0, 0.5, -0.2])
torch.lerp
torch.lerp(start, end, weight, out=None)
对两个张量以start,end做线性插值, 将结果返回到输出张量。

torch.log

torch.log(input, out=None) → Tensor

计算input 的自然对数

参数:
input (Tensor) – 输入张量
out (Tensor, optional) – 输出张量
例子:

>>> a = torch.randn(5)
>>> a

-0.4183
 0.3722
-0.3091
 0.4149
 0.5857
[torch.FloatTensor of size 5]

>>> torch.log(a)

    nan
-0.9883
    nan
-0.8797
-0.5349
[torch.FloatTensor of size 5]

torch.mul

torch.mul(input, value, out=None)

用标量值value乘以输入input的每个元素,并返回一个新的结果张量。 out=tensor∗value
如果输入是FloatTensor or DoubleTensor类型,则value 必须为实数,否则须为整数。【译注:似乎并非如此,无关输入类型,value取整数、实数皆可。】

参数:

input (Tensor) – 输入张量
value (Number) – 乘到每个元素的数
out (Tensor, optional) – 输出张量
例子:

>>> a = torch.randn(3)
>>> a

-0.9374
-0.5254
-0.6069
[torch.FloatTensor of size 3]

>>> torch.mul(a, 100)

-93.7411
-52.5374
-60.6908
[torch.FloatTensor of size 3]

torch.neg

torch.neg(input, out=None) → Tensor

返回一个新张量,包含输入input 张量按元素取负。 即, out=−1∗input
参数:

input (Tensor) – 输入张量
out (Tensor, optional) – 输出张量
例子:

>>> a = torch.randn(5)
>>> a

-0.4430
 1.1690
-0.8836
-0.4565
 0.2968
[torch.FloatTensor of size 5]

>>> torch.neg(a)

 0.4430
-1.1690
 0.8836
 0.4565
-0.2968
[torch.FloatTensor of size 5]

torch.pow

torch.pow(input, exponent, out=None)

对输入input的按元素求exponent次幂值,并返回结果张量。 幂值exponent 可以为单一 float 数或者与input相同元素数的张量。

当幂值为标量时,执行操作:
outi=xexponent
当幂值为张量时,执行操作:
outi=xexponenti
参数:

input (Tensor) – 输入张量
exponent (float or Tensor) – 幂值
out (Tensor, optional) – 输出张量
例子:

>>> a = torch.randn(4)
>>> a

-0.5274
-0.8232
-2.1128
 1.7558
[torch.FloatTensor of size 4]

>>> torch.pow(a, 2)

 0.2781
 0.6776
 4.4640
 3.0829
[torch.FloatTensor of size 4]

>>> exp = torch.arange(1, 5)
>>> a = torch.arange(1, 5)
>>> a

 1
 2
 3
 4
[torch.FloatTensor of size 4]

>>> exp

 1
 2
 3
 4
[torch.FloatTensor of size 4]
>>> torch.pow(a, exp)

   1
   4
  27
 256
[torch.FloatTensor of size 4]

torch.pow(base, input, out=None)

base 为标量浮点值,input为张量, 返回的输出张量 out 与输入张量相同形状。

执行操作为:
outi=baseinputi
参数:

base (float) – 标量值,指数的底
input ( Tensor) – 幂值
out (Tensor, optional) – 输出张量
例子:

>>> exp = torch.arange(1, 5)
>>> base = 2
>>> torch.pow(base, exp)

  2
  4
  8
 16
[torch.FloatTensor of size 4]

torch.reciprocal

torch.reciprocal(input, out=None) → Tensor

返回一个新张量,包含输入input张量每个元素的倒数,即 1.0/x。
参数:
input (Tensor) – 输入张量
out (Tensor, optional) – 输出张量
例子:

>>> a = torch.randn(4)
>>> a

 1.3869
 0.3912
-0.8634
-0.5468
[torch.FloatTensor of size 4]

>>> torch.reciprocal(a)

 0.7210
 2.5565
-1.1583
-1.8289
[torch.FloatTensor of size 4]

torch.remainder

torch.remainder(input, divisor, out=None) → Tensor

返回一个新张量,包含输入input张量每个元素的除法余数。 除数与被除数可能同时包含整数或浮点数。余数与除数有相同的符号。

参数:

input (Tensor) – 被除数
divisor (Tensor or float) – 除数,一个数或者与除数相同大小的张量
out (Tensor, optional) – 输出张量
例子:

>>> torch.remainder(torch.Tensor([-3, -2, -1, 1, 2, 3]), 2)
torch.FloatTensor([1, 0, 1, 1, 0, 1])
>>> torch.remainder(torch.Tensor([1, 2, 3, 4, 5]), 1.5)
torch.FloatTensor([1.0, 0.5, 0.0, 1.0, 0.5])
参考: 函数torch.fmod() 同样可以计算除法余数,相当于 C 的 库函数fmod()

torch.round

torch.round(input, out=None) → Tensor

返回一个新张量,将输入input张量每个元素舍入到最近的整数。

参数:

input (Tensor) – 输入张量
out (Tensor, optional) – 输出张量
例子:

>>> a = torch.randn(4)
>>> a

 1.2290
 1.3409
-0.5662
-0.0899
[torch.FloatTensor of size 4]

>>> torch.round(a)

 1
 1
-1
-0
[torch.FloatTensor of size 4]

torch.rsqrt

torch.rsqrt(input, out=None) → Tensor
返回一个新张量,包含输入input张量每个元素的平方根倒数。

参数:

input (Tensor) – 输入张量
out (Tensor, optional) – 输出张量
例子:

>>> a = torch.randn(4)
>>> a

 1.2290
 1.3409
-0.5662
-0.0899
[torch.FloatTensor of size 4]

>>> torch.rsqrt(a)

 0.9020
 0.8636
    nan
    nan
[torch.FloatTensor of size 4]

torch.sigmoid

torch.sigmoid(input, out=None) → Tensor

返回一个新张量,包含输入input张量每个元素的sigmoid值。

参数:

input (Tensor) – 输入张量
out (Tensor, optional) – 输出张量
例子:

>>> a = torch.randn(4)
>>> a

-0.4972
 1.3512
 0.1056
-0.2650
[torch.FloatTensor of size 4]

>>> torch.sigmoid(a)

 0.3782
 0.7943
 0.5264
 0.4341
[torch.FloatTensor of size 4]

torch.sin

torch.sin(input, out=None) → Tensor

返回一个新张量,包含输入input张量每个元素的正弦。

参数:

input (Tensor) – 输入张量
out (Tensor, optional) – 输出张量
例子:

>>> a = torch.randn(4)
>>> a
-0.6366
 0.2718
 0.4469
 1.3122
[torch.FloatTensor of size 4]

>>> torch.sin(a)
-0.5944
 0.2684
 0.4322
 0.9667
[torch.FloatTensor of size 4]

torch.sinh

torch.sinh(input, out=None) → Tensor

返回一个新张量,包含输入input张量每个元素的双曲正弦。

参数:

input (Tensor) – 输入张量
out (Tensor, optional) – 输出张量
例子:

>>> a = torch.randn(4)
>>> a
-0.6366
 0.2718
 0.4469
 1.3122
[torch.FloatTensor of size 4]

>>> torch.sinh(a)
-0.6804
 0.2751
 0.4619
 1.7225
[torch.FloatTensor of size 4]

torch.sqrt

torch.sqrt(input, out=None) → Tensor

返回一个新张量,包含输入input张量每个元素的平方根。

参数:

input (Tensor) – 输入张量
out (Tensor, optional) – 输出张量
例子:

>>> a = torch.randn(4)
>>> a

 1.2290
 1.3409
-0.5662
-0.0899
[torch.FloatTensor of size 4]

>>> torch.sqrt(a)

 1.1086
 1.1580
    nan
    nan
[torch.FloatTensor of size 4]

torch.tan

torch.tan(input, out=None) → Tensor

返回一个新张量,包含输入input张量每个元素的正切。

参数:

input (Tensor) – 输入张量
out (Tensor, optional) – 输出张量
例子:

>>> a = torch.randn(4)
>>> a
-0.6366
 0.2718
 0.4469
 1.3122
[torch.FloatTensor of size 4]

>>> torch.tan(a)
-0.7392
 0.2786
 0.4792
 3.7801
[torch.FloatTensor of size 4]

torch.tanh

torch.tanh(input, out=None) → Tensor

返回一个新张量,包含输入input张量每个元素的双曲正切。

参数:

input (Tensor) – 输入张量
out (Tensor, optional) – 输出张量
例子:

>>> a = torch.randn(4)
>>> a
-0.6366
 0.2718
 0.4469
 1.3122
[torch.FloatTensor of size 4]

>>> torch.tanh(a)
-0.5625
 0.2653
 0.4193
 0.8648
[torch.FloatTensor of size 4]

torch.trunc

torch.trunc(input, out=None) → Tensor

返回一个新张量,包含输入input张量每个元素的截断值(标量x的截断值是最接近其的整数,其比x更接近零。简而言之,有符号数的小数部分被舍弃)。

参数:

input (Tensor) – 输入张量
out (Tensor, optional) – 输出张量
例子:

>>> a = torch.randn(4)
>>> a

-0.4972
 1.3512
 0.1056
-0.2650
[torch.FloatTensor of size 4]

>>> torch.trunc(a)

-0
 1
 0
-0
[torch.FloatTensor of size 4]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hyk今天写算法了吗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值