PyTorch MathOperation API总结

Pytorch Math operations

Pointwise Ops

基本运算

  • torch.add()
    • torch.add(input, other, out=None)--执行加法,out=input+other
    • torch.add(input, other, alpha=1, out=None)--out=input + alpha x other
  • torch.abs(input, out=None)--求绝对值,返回Tensor
  • torch.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)--对每个元素乘以-1

  • torch.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)--计算cos
  • torch.cosh(input, out=None)--计算cosh
  • torch.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)
您的赞赏将会是我前进的巨大动力