【科研-学习-pytorch】6-数值计算

本文介绍了PyTorch中的基本数学运算,包括加减乘除和矩阵相乘,并探讨了approximation操作如.floor()和.ceil()。还详细阐述了clamp在防止梯度爆炸和弥散中的作用,以及where条件运算符的使用。此外,还讲解了如何利用gather高效地进行索引操作,特别是在处理文本类别和标签映射时的应用。

加减乘除

add, sub,mul,div
[+,-,*,/]

矩阵相乘

element-wise 相乘 “*”
matrix mul matmul和@含义一致;mm只适用于2d数据相乘;

对于高维矩阵的运算:

a = torch.rand(3, 3, 224, 126)
b = torch.rand(3, 3, 224, 126)
c = torch.matmul(a, b.t())

特别:
b  = torch.rand(3, 1, 126, 256)
c = torch.matmul(a, b)
c.shape = [3, 3, 224, 256]
先boardcasting后矩阵后两个维度相乘

approximation

.floor(), ceil()
向上取整和向下取整

clamp

clamp(min)
clamp(min, max)
裁剪特征或者权重,防止梯度爆炸和弥散;

高阶

where

where(cond, a, b)
在条件cond下,如成立则a,不成立则b;
cond,a,b的尺寸都要保持一致;
可用于gpu高效运算判定;

gather-收集

对于文本类别,如何将索引列表和对应索引label进行高效索引,使用gather。
gather公式看起来很复杂,简而言之,对于index使用gather可将对应数字序号转化为标签,从而转换标签;

torch.gather(input, dim. index, out)
out[i][j][k] = input[i][j][index[i][j][k]]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值