torch学习笔记之——数学运算

基本的运算操作类型:

Add/minus/multiply/divide 加减乘除 ,

Matmul 矩阵式相乘,

Pow 次方,Sqrt/rsqrt 开方,

Round 近似运算,Clamp取上下限。

基础的运算:加 +(add),减-(sub), 乘*(mul) ,除/(div)

a = torch.rand(3,4)
b=torch.rand(4)

print(a+b)
print(torch.add(a,b))
print(a-b)
print(torch.sub(a,b))
print(a*b) # element-wise
print(torch.mul(a,b))
print(a/b)
print(torch.div(a,b))

 矩阵相乘 matmul

        Torch.mm 矩阵的相乘 只适合于2d的tensor

        Torch.matmul /@  矩阵相乘,可以是2d以上的tensor,进行运算的时候取最后两个维度进行乘运算。建议使用。

        2d的例子:

a = torch.ones(2,2)+torch.ones(2,2)
b=torch.ones(2,2)

print(torch.mm(a, b))
print(torch.matmul(a, b))
print(a@b)

        超过2d的例子:

                 注意计算过程是:先广播机制,在乘运算:            

                 使用@例子:

 power次方操作:

a = torch.full([2,2],3)
print(a.pow(2))
print(a**2)

 sqrt开方操作:

aa = a**2
print(aa)
print(aa.sqrt())
print(aa**(0.5))

         Rsqrt() 表示平方根的倒数 用的比较少一点。

print(aa.rsqrt())

 exp log 自然数,和自然对数:

        构建自然数的tensor:

a = torch.exp(torch.ones(2,2))
print(a)

        自然对数(log以e为底):

print(torch.log(a))

 

         注意,log函数默认以e为底,要是以2为底就是log2(tensor),以n为底就是logn(tensor)。

 近似值函数:

a=torch.tensor(3.14)
# 向下取整
print(a.float())
# 向上取整
print(a.ceil())
# 裁剪整数部分
print(a.trunc())
# 裁剪小数部分
print(a.frac())

# 四舍五入
a= torch.tensor(3.499)
print(a.round())

a = torch.tensor(3.5)
print(a.round())

 Clamp函数:裁剪功能,常用于梯度裁剪。

(作用手动消除梯度爆炸或者消失)

 

         常用情况:      

 For i in []:
    Clamp(w.grad(1,10))

        补充一个技巧:

                查看梯度的模,W.grad.norm(2)==>表示梯度举证的第二范式。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值