1 常用的数学操作
在pytorch官方文档上,Tensor的数学操作方法有90多种,下图给了经常使用的25种数学操作方法(除线性代数运算外,线性运算下面会介绍)
方法 说明
add() Tensor中每个元素同加一个标量,或与另一个Tensor逐元素相加
mul() Tensor中每个元素同乘一个标量,或与另一个Tensor逐元素相乘
div() Tensor中每个元素同除一个标量,或与另一个Tensor逐元素相除
fmod()和remainder() Tensor中每个元素与一个标量的除法余数,相当于Python中的%操作
abs() 对Tensor中的每个元素取绝对值,并返回
ceil() 对Tensor中的每个元素向上取整
floor() 对Tensor中的每个元素向下取整
clamp() 对Tensor中的每个元素取上下限
round() 对Tensor中的每个元素取最近的整数
frac() 返回Tensor中每个元素的分数部分
neg() 对Tensor中的每个元素取负
reciprocal() 对Tensor中的每个元素取倒数
log() 返回一个张量,包含Tensor中每个元素的自然对数
pow() 对Tensor中的每个元素同取一个标量幂值,或采用另外一个Tensor的对应元素
取幂,或对标量采用Tensor的每个元素取幂
exp() 返回一个张量,包含Tensor中每个元素的指数
sigmoid() 返回一个张量,包含Tensor中的每个元素的sigmoid值
sign() 返回一个张量,包含Tensor中每个元素的正负值
sqrt() 返回一个张量,包含Tensor中每个元素的平方根
dist() 返回两个Tensor的范数
mean() 返回Tensor中所有元素的均值
norm() 返回Tensor的范数值
prod() 返回Tensor的所有元素之积
sum() 返回Tensor的 所有元素之和
max() 返回Tensor的所有元素的最大值
min() 返回Tensor的所有元素的最小值
Tensor的数学操作的实现方法一般由两种:直接用Tensor实例调用数学操作方法;
使用torch库的方法。
下面使用第一种方法,利用其中一个Tensor实例上的方法直接运算
a = torch.Tensor([[1,2,3],[4,5,6]])
a
tensor([[1., 2., 3.],
[4., 5., 6.]])
b = torch.ones(2,3)
b
tensor([[1., 1., 1.],
[1., 1., 1.]])
b.add(a)
tensor([[2., 3., 4.],
[5., 6., 7.]])
使用第二种方法实现加法操作,利用torch包的torch.add()方法:
torch.add(a,b)
tensor([[2., 3., 4.],
[5., 6., 7.]])
这里,我们介绍一下数学操作带下划线,返回值将覆盖对象,例如:
b.add_(a)
tensor([[2., 3., 4.],
[5., 6., 7.]])
b
tensor([[2., 3., 4.],
[5., 6., 7.]])
上列中,张量b与张量a相加的值覆盖张量b.