PyTorch学习笔记(四)
PyTorch学习笔记(四)
数学操作Math operations
torch.abs
1 | torch.abs(input, out=None) → Tensor |
计算输入张量的每个元素绝对值。
例子:
1 | >>> torch.abs(torch.FloatTensor([-1, -2, 3])) |
torch.add()
1 | torch.add(input, value, out=None) |
对输入张量input
逐元素加上标量值value,并返回结果到一个新的张量out,即 $out=tensor+value$。
参数:
- input (Tensor) – 输入张量
- value (Number) – 添加到输入每个元素的数
- out (Tensor, optional) – 结果张量
1 | torch.add(input, value=1, other, out=None) |
other
张量的每个元素乘以一个标量值value
,并加到input
张量上。返回结果到输出张量out
。即,$out=input+(other∗value)$
两个张量 input and other
的尺寸不需要匹配,但元素总数必须一样。
注意 :当两个张量形状不匹配时,输入张量的形状会作为输出张量的尺寸。
参数:
- input (Tensor) – 第一个输入张量
- value (Number) – 用于第二个张量的尺寸因子
- other (Tensor) – 第二个输入张量
- out (Tensor, optional) – 结果张量
torch.addcdiv
1 | torch.addcdiv(tensor, value=1, tensor1, tensor2, out=None) → Tensor |
用tensor2
对tensor1
逐元素相除,然后乘以标量值value
并加到tensor。即,$out=t1/t2*value+t$
张量的形状不需要匹配,但元素数量必须一致。
如果输入是FloatTensor or DoubleTensor类型,则value
必须为实数,否则须为整数。
参数:
- tensor (Tensor) – 张量,输出
- value (Number, optional) – 标量,对 tensor1 ./ tensor2 进行相乘
- tensor1 (Tensor) – 张量,作为被除数(分子)
- tensor2 (Tensor) –张量,作为除数(分母)
- out (Tensor, optional) – 输出张量
例子:
1 | >>> t = torch.randn(1, 6) |
torch.addcmul
1 | torch.addcmul(tensor, value=1, tensor1, tensor2, out=None) → Tensor |
用tensor2
对tensor1
逐元素相乘,并对结果乘以标量值value
然后加到tensor。 张量的形状不需要匹配,但元素数量必须一致。
如果输入是FloatTensor or DoubleTensor类型,则value
必须为实数,否则须为整数。
参数:
- tensor (Tensor) – 张量,输出
- value (Number, optional) – 标量,对 tensor1 . tensor2 进行相乘
- tensor1 (Tensor) – 张量,作为乘子1
- tensor2 (Tensor) –张量,作为乘子2
- out (Tensor, optional) – 输出张量
torch.mul
- 标量
1 | torch.mul(input, value, out=None) |
用标量值value乘以输入input
的每个元素,并返回一个新的结果张量。 $out=tensor∗value$
参数:
- input (Tensor) – 输入张量
- value (Number) – 乘到每个元素的数
- out (Tensor, optional) – 输出张量
例子:
1 | >>> a = torch.randn(3) |
- 张量
- 对应元素相乘
1 | torch.mul(input, other, out=None) |
例子:
1 | >>> a = torch.randn(4,4) |
torch.div()
1 | torch.div(input, value, out=None) |
将input
逐元素除以标量值value,并返回结果到输出张量out
。 即 $out=tensor/value$
torch.sqrt
1 | torch.sqrt(input, out=None) → Tensor |
返回一个新张量,包含输入input
张量每个元素的平方根。
参数:
- input (Tensor) – 输入张量
- out (Tensor, optional) – 输出张量
例子:
1 | >>> a = torch.randn(4) |
torch.neg
1 | torch.neg(input, out=None) → Tensor |
返回一个新张量,包含输入input 张量按元素取负。 即, $out=−1∗input$
参数:
- input (Tensor) – 输入张量
- out (Tensor, optional) – 输出张量
例子:
1 | >>> a = torch.randn(5) |
torch.pow
1 | torch.pow(input, exponent, out=None) |
对输入input
的按元素求exponent
次幂值,并返回结果张量。 幂值exponent
可以为单一 float
数或者与input
相同元素数的张量。
- 当幂值为标量时,执行操作:
$out_i=x^{exponent}$ - 当幂值为张量时,执行操作:
$out_i=x^{exponent_i}$
参数:
- input (Tensor) – 输入张量
- exponent (float or Tensor) – 幂值
- out (Tensor, optional) – 输出张量
例子:
1 | >>> a = torch.randn(4) |
同样底数可以为张量,指数为张量。
1 | torch.pow(base, input, out=None) |
base
为标量浮点值,input
为张量, 返回的输出张量 out 与输入张量相同形状。
执行操作为:
$out_i=base^{input_i}$
torch.exp
1 | torch.exp(tensor, out=None) → Tensor |
返回一个新张量,包含输入input
张量每个元素的指数。
torch.log
1 | torch.log(input, out=None) → Tensor |
计算input
的自然对数。
torch.acos(input, out=None) → Tensor
1 | torch.acos(input, out=None) → Tensor |
返回一个新张量,包含输入张量每个元素的反余弦。
参数:
- input (Tensor) – 输入张量
- out (Tensor, optional) – 结果张量
例子:
1 | >>> a = torch.randn(4) |
torch.asin
1 | torch.asin(input, out=None) → Tensor |
返回一个新张量,包含输入input
张量每个元素的反正弦函数。
torch.atan
1 | torch.atan(input, out=None) → Tensor |
返回一个新张量,包含输入input张量每个元素的反正切函数。
torch.sin
1 | torch.sin(input, out=None) → Tensor |
返回一个新张量,包含输入input
张量每个元素的正弦。
torch.cos
1 | torch.cos(input, out=None) → Tensor |
返回一个新张量,包含输入input
张量每个元素的余弦。
torch.tan
1 | torch.tan(input, out=None) → Tensor |
返回一个新张量,包含输入input
张量每个元素的正切。
torch.sinh
1 | torch.sinh(input, out=None) → Tensor |
返回一个新张量,包含输入input
张量每个元素的双曲正弦。
torch.cosh
1 | torch.cosh(input, out=None) → Tensor |
返回一个新张量,包含输入input
张量每个元素的双曲余弦。
torch.tanh
1 | torch.tanh(input, out=None) → Tensor |
返回一个新张量,包含输入input
张量每个元素的双曲正切。
torch.ceil
1 | torch.ceil(input, out=None) → Tensor |
天井函数,对输入input
张量每个元素向上取整, 即取不小于每个元素的最小整数,并返回结果到输出。
参数:
- input (Tensor) – 输入张量
- out (Tensor, optional) – 输出张量
1 | >>> a = torch.randn(4) |
torch.floor
1 | torch.floor(input, out=None) → Tensor |
床函数: 返回一个新张量,包含输入input
张量每个元素的floor
,即不小于元素的最大整数。向下取整。
torch.round
1 | torch.round(input, out=None) → Tensor |
返回一个新张量,将输入input
张量每个元素舍入到最近的整数(四舍五入)。
参数:
- input (Tensor) – 输入张量
- out (Tensor, optional) – 输出张量
例子:
1 | >>> a = torch.randn(4) |
torch.trunc
1 | torch.trunc(input, out=None) → Tensor |
返回一个新张量,包含输入input
张量每个元素的截断值(标量x
的截断值是最接近其的整数,其比x更接近零。简而言之,有符号数的小数部分被舍弃)。
参数:
- input (Tensor) – 输入张量
- out (Tensor, optional) – 输出张量
例子:
1 | >>> a = torch.randn(4) |
torch.clamp
1 | torch.clamp(input, min, max, out=None) → Tensor |
将输入input
张量每个元素的夹紧到区间 $[min,max]$,并返回结果到一个新张量。
公式:
参数:
- input (Tensor) – 输入张量
- min (Number) – 限制范围下限
- max (Number) – 限制范围上限
- out (Tensor, optional) – 输出张量
将输出限制到不小于0.5
1 | torch.clamp(a, min=0.5) |
将输出限制到不大于0.5
1 | torch.clamp(a, max=0.5) |
例子:
1 | >>> a = torch.randn(4) |
torch.fmod
1 | torch.fmod(input, divisor, out=None) → Tensor |
计算除法余数。
除数与被除数可能同时含有整数和浮点数。此时,余数的正负与被除数相同。
参数:
- input (Tensor) – 被除数
- divisor (Tensor or float) – 除数,一个数或与被除数相同类型的张量
- out (Tensor, optional) – 输出张量
torch.remainder用法相同。
1 | torch.remainder(input, divisor, out=None) → Tensor |
例子:
1 | >>> torch.fmod(torch.Tensor([-3, -2, -1, 1, 2, 3]), 2) |
torch.frac
1 | torch.frac(tensor, out=None) → Tensor |
返回每个元素的分数部分。
例子:
1 | >>> torch.frac(torch.Tensor([1, 2.5, -3.2]) |
torch.lerp
1 | torch.lerp(start, end, weight, out=None) |
对两个张量以start
,end做线性插值, 将结果返回到输出张量。
即,$out_i=start_i+weight∗(end_i−start_i)$
参数:
- start (Tensor) – 起始点张量
- end (Tensor) – 终止点张量
- weight (float) – 插值公式的weight
- out (Tensor, optional) – 结果张量
例子:
1 | >>> start = torch.arange(1, 5) |
torch.sign
1 | torch.sign(input, out=None) → Tensor |
符号函数:返回一个新张量,包含输入input
张量每个元素的正负。
参数:
- input (Tensor) – 输入张量
- out (Tensor, optional) – 输出张量
例子:
1 | >>> a = torch.randn(4) |