pytorch 中矩阵乘法
torch.mm(mat1, mat2, out=None)
其中 $\operatorname{mat} 1 \in \mathbb{R}^{n \times m}, \operatorname{mat} 2 \in \mathbb{R}^{m \times d} $ ,输出的 $out \in \mathbb{R}^{n \times d} $ 。
该函数一般只用来计算两个二维矩阵的矩阵乘法,并且不支持 broadcast 操作。
2、三维带 batch 的矩阵乘法 torch.bmm()
由于神经网络训练一般采用 mini-batch,经常输入的时三维带 batch 的矩阵,所以提供
torch.bmm(bmat1, bmat2, out=None)
其中 $bmat 1 \in \mathbb{R}^{b \times n \times m} , bmat 2 \in \mathbb{R}^{b \times m \times d}$ , 输入出的 $out \in \mathbb{R}^{b \times n \times d} $ 。 该函数的两个输入必须是三维矩阵并且第一维相同(表示Batch维度),不支持 broadcast 操作
3、多维矩阵乘法 torch.matmul()
torch.matmul(input, other, out=None)
支持broadcast操作,使用起来比较复杂。针对多维数据 matmul() 乘法,可以认为该乘法使用使用两个参数的后两个维度来计算,其他的维度都可以认为是batch维度。
假设两个输入的维度分别是 input(1000×500×99×11), other(500×11×99)那么我们可以认为 torch.matmul(input, other, out=None) 乘法首先是进行后两位矩阵乘法得到 (99×11)×(11×99)⇒(99×99) ,然后分析两个参数的 batch size 分别是 (1000×500) 和 500 , 可以广播成为 (1000×500), 因此最终输出的维度是 (1000×500×99×99)。
4、矩阵逐元素 (Element-wise) 乘法 torch.mul()
torch.mul(mat1, other, out=None)
相关文章
- linux:安装pytorch(python3.6.8 / pytorch 1.10.1+cu102)
- jittor 和pytorch gpu 使用效率对比(惊人jittor的算力利用率是pytorch 4-5倍)
- pytorch搭建卷积神经网络训练手写数字识别
- 【图像分类】实战——使用EfficientNetV2实现图像分类(Pytorch)
- Pytorch实现APNB
- Pytorch GCN入门
- 【youcans的深度学习 02】PyTorch CPU版本安装与环境配置
- Pytorch入门教程
- 【PyTorch】 多进程队列中传入pytorch处理后的tensor张量
- pytorch中的unsqueeze()函数解析
- Pytorch房价预测
- Pytorch预测
- pytorch 3 mae、mse、BCELoss、BCEWithLogitsLoss和CrossEntropyLoss等loss的使用
- PyTorch使用技巧4:简单理解transforms.Compose()