pytorch 中矩阵乘法

1、二维矩阵乘法 torch.mm()

  torch.mm(mat1, mat2, out=None)

  其中 mat1Rn×m,mat2Rm×d ,输出的 outRn×d

  该函数一般只用来计算两个二维矩阵的矩阵乘法,并且不支持 broadcast 操作。

 

2、三维带 batch 的矩阵乘法 torch.bmm()

  由于神经网络训练一般采用 mini-batch,经常输入的时三维带 batch 的矩阵,所以提供

    torch.bmm(bmat1, bmat2, out=None)

  其中 bmat1Rb×n×m,bmat2Rb×m×d , 输入出的 outRb×n×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)

  其中 other 乘数可以是标量,也可以是任意维度的矩阵, 只要满足最终相乘是可以 broadcast 的即可。

posted @   别关注我了,私信我吧  阅读(254)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
Live2D
点击右上角即可分享
微信分享提示