加减乘除
-
-
- /以外:
-
torch.add(a,b)
sub
mul
div
matmul
*号只是矩阵对应位置元素相乘
matmul是matrix mull
三种方法实现
Torch.mm
only for 2d
Torch.matmul
torch.matmul(a,b)
还是只有最后两维进行运算,前面的使用broadcasting进行扩展,但是size大小得一样
a=torch.rand(4,3,28,64)
b=torch.rand(4,1,64,32)
torch.matmul(a,b).shape
c=torch.rand(4,64,32)
torch.matmul(a,c).shape
---------------------------------------------------------------------------
RuntimeError Traceback (most recent call last)
~\AppData\Local\Temp/ipykernel_27688/2168653215.py in <module>
4
5 c=torch.rand(4,64,32)
----> 6 torch.matmul(a,c).shape
RuntimeError: The size of tensor a (3) must match the size of tensor
@
a@b
次方运算
a=torch.full([2,2],3)
a.pow(n)
a**(n) # n次方
sqrt() # 平方根
rsqrt() # 平方根的倒数
exp log
a=torch.exp(torch.ones(2,2))
print(a)
torch.log(a)
tensor([[2.7183, 2.7183],
[2.7183, 2.7183]])
tensor([[1., 1.],
[1., 1.]])
log2():以2为底
log10()
近似值
floor():下取整
ceil():上取整
trunc():取整数
frac():取小数
round():四舍五入
clamp
clamp(n):小于n的都取n
clamp(n,m):取n~m之间的,小于n取n,大于m取m