Pytorch Math operations
Pointwise Ops
基本运算
torch.add()
torch.add(input, other, out=None)
--执行加法,out=input+othertorch.add(input, other, alpha=1, out=None)
--out=input + alpha x other
torch.abs(input, out=None)
--求绝对值,返回Tensortorch.div(input, other, out=None)
--除法运算,这里的other可以是一个标量或者是一个张量torch.fmod(input, other, out=None)
--input中的每个数据对other取余,余数和input中的被除数符号相同torch.mul(input, other, out=None)
--相乘,\(out_i = input_i \times other\)或者\(out_i = input_i \times other_i\)
torch.neg(input, out=None)
--对每个元素乘以-1torch.remainder(input, other, out=None)
--input中的每个数据对other取余,余数和除数的符号相同
线性运算
torch.addcdiv(input, value=1, tensor1, tensor2, out=None)
--\(out_i=input_i+value\times \frac{tensor1_i}{tensor2_i}\)
torch.addcmul(input, value=1, tensor1, tensor2, out=None)
--\(out_i=input_i+value \times tensor1_i \times tensor2_i\)
torch.lerp(input, end, weight, out=None)
--对两个tensor做线性插值,计算\(out_i = start_i + weight_i \times (end_i - start_i)\)
三角函数
torch.acos(input, out=None)
--\(out_i=cos^{-1}(input_i)\)torch.asin(input, out)
--执行arcsin运算torch.atan(input, out)
--执行arctan运算torch.atan2(input, other, out=None)
--对\(input_i / other_i\)做arctan运算torch.cos(input, out=None)
--计算costorch.cosh(input, out=None)
--计算coshtorch.sin(input, out=None)
--sin函数torch.sinh(input, out=None)
--sinh函数torch.tan(input, out=None)
--tan函数torch.tanh(input, out=None)
--tanh函数
幂指对函数
torch.exp(input, out=None)
--计算\(y_i = e^{x_i}\)torch.expm1(input, out=None)
--计算\(y_i = e^{x_i}-1\)torch.log(input, out=None)
--对输入数据计算自然对数torch.log10(input, out=None)
--计算10为底的对数torch.log1p(input, out=None)
--计算\(y_i = log_e(x_i+1)\)torch.log2(input, out=None)
--计算2为底的对数torch.pow()
torch.pow(input, exponent, out=None)
--执行\(out_i = x_i^{exponent_i}\)torch.pow(self, exponent, out=None)
--执行\(out_i = self^{exponent_i}\),这里self是一个标量,而exponent是一个tensor
逻辑运算
torch.bitwise_not(input, out=None)
--对输入的数按位取反,这里的input tensor必须是整型或者布尔型数据torch.logical_not(input, out=None)
--对input每个元素做逻辑非运算torch.logical_xor(input, other, out=None)
--对两个tensor的数据做异或运算,这两个tensor必须是布尔类型
取整操作
torch.ceil(input, out=None)
--对输入数据向上取整torch.floor(input, out=None)
--对输入数据向下取整torch.round(input, out=None)
--对输入数据四舍五入取整torch.trunc(input, out=None)
--去掉每个元素的小数部分torch.frac(input, out=None)
--得到输入数据的小数部分torch.clamp(input, min, max, out=None)
--将input中的所有元素都截断在[min, max]的范围内,可以省略其中一个参数(min或者max),表示[-Inf, max]或者[min, Inf]
其它一些常见函数
torch.reciprocal(input, out=None)
--执行\(out_i = \frac{1}{input_i}\)torch.rsqrt(input, out=None)
--计算\(out_i=\frac{1}{\sqrt{input_i}}\)torch.sigmoid(input, out=None)
--计算\(out_i = \frac{1}{1+e^{-input_i}}\)torch.sign(input, out=None)
--符号函数torch.sqrt(input, out=None)
--对输入的每个元素求根号
一些复杂函数
torch.digamma(input, out=None)
--计算digmma函数torch.erf(input, out=None)
--计算误差函数torch.erfc(input, out=None)
--计算误差函数的补torch.erfinv(input, out=None)
torch.lgamma(input, out=None)
torch.mvlgamma(input, p)
torch.polygamma(n, input, out=None)