[Pytorch]:PyTorch中张量乘法大全

news/2025/4/1 3:30:30/

在 PyTorch 中,有多种方法可以执行张量之间的乘法。这里列出了一些常见的乘法操作:

总结:

  • 逐元素乘法:*ortorch.mul()
  • 矩阵乘法@ortorch.mm()ortorch.matmul()
  • 点积torch.Tensor.dot()
  • 批量矩阵乘法torch.bmm()torch.matmul()
  • 矩阵与向量相乘torch.mv(X, w0)
  1. 逐元素乘法(Element-wise multiplication):*ortorch.mul()()`对应位置的元素相乘,输入张量形状必须相同或可广播

    import torchA = torch.tensor([[1, 2], [3, 4]])
    B = torch.tensor([[2, 3], [4, 5]])result = A * B
    print(result)
    

    输出:

    tensor([[ 2,  6],[12, 20]])
    
  2. 矩阵乘法@ortorch.mm()ortorch.matmul()两个矩阵相乘,第一个矩阵的列数必须等于第二个矩阵的行数。

    import torchA = torch.tensor([[1, 2], [3, 4]])
    B = torch.tensor([[2, 3], [4, 5]])result = torch.matmul(A, B)
    print(result)
    

    输出:

    tensor([[10, 13],[22, 29]])
    

    或者使用 @ 运算符执行矩阵乘法:

    result = A @ B
    print(result)
    
  3. 点积(Dot product):torch.Tensor.dot()两个一维张量的点积。

    import torchA = torch.tensor([1, 2, 3])
    B = torch.tensor([4, 5, 6])result = torch.dot(A, B)
    print(result)
    

    输出:

    tensor(32)
    
  4. 批量矩阵乘法:对于具有更高维度的张量(点积),可以使用 torch.bmm()torch.matmul() 进行批量矩阵乘法。

    import torchA = torch.tensor([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
    B = torch.tensor([[[2, 3], [4, 5]], [[6, 7], [8, 9]]])result = torch.bmm(A, B)
    print(result)
    

    输出:

    tensor([[[ 10,  13],[ 22,  29]],[[ 76,  91],[112, 133]]])
    

​ 两个输入张量的 batch_size 必须相同。此外,第一个输入张量的 num_columns 必须与第二个输入张量的 num_rows 相同。换句话说,输入张量的形状应为 (batch_size, num_rows_A, num_columns_A)(batch_size, num_columns_A, num_columns_B)

  1. 矩阵与向量相乘torch.mv(X, w0)第一个参数是矩阵,第二个参数只能是一维向量,等价于X乘以w0的转置

http://www.ppmy.cn/news/1409401.html

相关文章

c++的学习之路:13、vector(2)

本章主要是模拟实现vector,文章末附上代码,和源码。 目录 一、STL源码 二、构造与析构 三、迭代器与【】、size、capacity、empty 四、reserve与resize 五、push_back与pop_back 六、insert与erase 七、测试 1 八、代码 九、思维导图 一、STL源…

ChatGPT Excel 大师

原文:ChatGPT Excel Mastery 译者:飞龙 协议:CC BY-NC-SA 4.0 序言 欢迎来到 Excel 掌握的变革之旅,在这里,尖端技术和永恒专业知识在“ChatGPT Excel 掌握:释放专家技巧和窍门的力量”中融合。在当今快节…

vue3+elementPlus:实现数字滚动效果(用于大屏可视化)

自行封装注册一个公共组件 案例一&#xff1a; //成功案例&#xff1a; //NumberScroll.vue /* 数字滚动特效组件 NumberScroll */<template><span class"number-scroll-grow"><spanref"numberScroll":data-time"time"class&qu…

【单片机】74HC4052电路图,单片机端口复用电路

74HC4052电路图 如下图&#xff0c;还是很好理解&#xff0c;PA9、PA10是单片机引脚。 当A和B是00&#xff0c;那么就是X-COM和0X短路&#xff0c;Y-COM和0Y短路。 当A和B是01&#xff0c;那么就是X-COM和1X短路&#xff0c;Y-COM和1Y短路。 以此类推。 74HC 工艺可以直接3.…

RocketMq实现单条发送,批量消费

1.传送门 安装RocketMq&#xff0c;RocketMq图形界面&#xff0c;spring boot集成RocketMq&#xff0c;参考以下三篇 本文安装版本是目前最新版RocketMq 5.2.0 安装RocketMq&#xff08;服务器Mq配置外网IP&#xff09;_rocket mq如何不使用ip连接-CSDN博客 RocketMq安装控…

python爬虫学习第十五天-------ajax的get和post请求

嗨嗨嗨&#xff01;兄弟姐妹大家好哇&#xff01;今天我们来学习ajax的get和post请求 一、了解ajax Ajax&#xff08;Asynchronous JavaScript and XML&#xff09;是一种在 Web 开发中用于创建交互式网页应用程序的技术。通过 Ajax&#xff0c;网页可以在不重新加载整个页面…

Linux 常用指令及其理论知识

个人主页&#xff1a;仍有未知等待探索-CSDN博客 专题分栏&#xff1a;http://t.csdnimg.cn/Tvyou 欢迎各位指教&#xff01;&#xff01;&#xff01; 目录 一、理论知识 二、基础指令 1、ls指令&#xff08;列出该目录下的所有子目录和文件&#xff09; 语法&#xff1a; …

俺们家Copilot和ChatGPT可不是一回事

俺们微软真的很想让大家使用俺们家的 Copilot 人工智能工具&#xff0c;不管大家是否愿意 。 一份新的报告显示&#xff0c;一些客户遇到了一个问题&#xff1a;它没有 ChatGPT 那么好用。但俺们微软认为&#xff0c;问题出在他们没能正确使用俺们家 Copilot 或不理解这两种产…