torch中的乘法符号(*),torch.mm()和torch.matmul(),torch.mul(), torch.bmm()
前言
torch
中常见的一些矩阵乘法和元素乘积,说白了无非就是以下四种,为了避免忘了,做个笔记
- 乘法符号
*
torch.mul()
torch.mm
torch.matmul
torch.dot
1. 对比
- 乘法符号
*
# shape=(2,5)
node = tensor([[1, 1, 1, 0, 0], [1, 1, 1, 1, 1]])node_0 = node.unsqueeze(-1)
'''
tensor([[[1],[1],[1],[0],[0]],[[1],[1],[1],[1],[1]]], torch.Size([2,1,5]))
'''
node_1 = node.unsqueeze(1)
'''
tensor([[[1, 1, 1, 0, 0]],[[1, 1, 1, 1, 1]]], torch.Size([2,5,1]))
''''True, 值相同'
node_mask.unsqueeze(-1) * node_mask.unsqueeze(1) == /
node_mask.unsqueeze(-1) * node_mask.unsqueeze(1)print(node_mask.unsqueeze(-1) * node_mask.unsqueeze(1))
'shape=[2,5,5]'
所以,乘法符号是对应的tensor
和元素乘。
2.torch.mul()
和上面一样,不同是有官方解释
torch.mul(input, value, out=None)
用标量值value
乘以输入input
的每个元素,并返回一个新的结果张量。 out=tensor∗value
# shape=(2,5)
node = tensor([[1, 1, 1, 0, 0], [1, 1, 1, 1, 1]])
node_0 = node.unsqueeze(-1) # [2,5,1]
node_1 = node.unsqueeze(1) # [2,1,5]
'shape=[2,5,5]'
torch.mul(node_0, node_1) #
'True,看来是相同的'
torch.mul(node_0, node_1) == node_mask.unsqueeze(-1) * node_mask.unsqueeze(1)
torch.matmul()和torch.mm()和torch.bmm()
- 在矩阵的情况下,矩阵就是
shape=n×m
格式,只能用torch.mm()
和torch.matmul()
,不可以使用torch.bmm()
- 但是大多数情况都是带有
batch_size
,也就是sahpe=[batch_size, n, m]
,只能用torch.matmul()
和torch.bmm()
# shape=(2,5)
node = tensor([[1, 1, 1, 0, 0], [1, 1, 1, 1, 1]])
node_0 = node.unsqueeze(-1) # [2,5,1]
node_1 = node.unsqueeze(1) # [2,1,5]'先看mm和matmul'
torch.mm(node_mask, node_mask.transpose(0,1)) # [2,2]
torch.matmul(node_mask, node_mask.transpose(0,1)) # [2,2]
# 下面 True
torch.mm(node_mask, node_mask.transpose(0,1)) == /
torch.matmul(node_mask, node_mask.transpose(0,1))# error: torch.mm()就不可以在这种三维tensor下用
torch.mm(node_0, node_1) # 报错
'而torch.matmul()'
torch.matmul(node_0, node_1)'看高维Tensor'
torch.matmul(node_0, node_1) # --> [2,1,1]
torch.bmm(node_0, node_1) # --> [2,1,1]
torch.bmm(node_mask.unsqueeze(1), node_mask.unsqueeze(-1)) # --> [2,1,1]'True'
torch.matmul(node_0, node_1) == torch.bmm(node_0, node_1)
注意:dot很快运算速度远超于matmul
torch中的乘法符号(*),torch.mm()和torch.matmul(),torch.mul(), torch.bmm()相关推荐
- matlab中de 乘法符号,MATLAB中的*(乘)和.*(点乘)傻傻分不清?!
MATLAB中点乘和乘的运算 0. 问题场景 最近,学校开始有MATLAB计算的课开课啦.很多小朋友都来问我为什么他们的程序无缘无故报错,答案基本都是没有分清*和.*.那么我这里就来讲一讲这俩运算的区 ...
- matlab中de 乘法符号,FPGA 中的有符号数乘法
FPGA中乘法器是很稀缺的资源,但也是我们做算法必不可少的资源.7系列及之前的FPGA都是25x18的DSP,UltraScale中是27x18,我们可以通过调IP Core的方式或者原语的方式来进行 ...
- 【增强学习】Torch中的增强学习层
要想在Torch框架下解决计算机视觉中的增强学习问题(例如Visual Attention),可以使用Nicholas Leonard提供的dpnn包.这个包对Torch中原有nn包进行了强大的扩展, ...
- torch中乘法整理,*torch.mul()torch.mv()torch.mm()torch.dot()@torch.mutmal()
目录 *位置乘 torch.mul():数乘 torch.mv():矩阵向量乘法 torch.mm() 矩阵乘法 torch.dot() 点乘积 @操作 torch.matmul() *位置乘 符号* ...
- Torch中的矩阵相乘分类
矩阵相乘在torch中的几种情况 1.矩阵逐元素(Element-wise)乘法 torch.mul(mat1, other) mat和other可以是标量也可以是任意维度的矩阵,只要满足最终相乘是可 ...
- torch中的spmm
系列文章目录 本系列记录自己的代码学习知识 torch.matmul的前后两个矩阵维度不同的小结 torch中的transpose和view的不同 torch中的spmm 系列文章目录 前言 一.to ...
- Torch 中添加自己的 nn Modules:以添加 Dropout、 Triplet Loss 为例
Preface 因为要复现前面阅读的一篇论文:<论文笔记:Deep Relative Distance Learning: Tell the Difference Between Similar ...
- torch中的copy()和clone()
torch中的copy()和clone() 1.torch中的copy()和clone() y = torch.Tensor(2,2):copy(x) --- 1 修改y并不改变原来的x y = x: ...
- torch中的topk()函数
torch中的topk()函数 In [2]: import torchIn [3]: a=torch.randn((4,6))In [4]: a Out
最新文章
- Spring Boot集成Swagger导入YApi@无界编程
- 关于Git中的一些常用的命令
- 关于bat的变量赋值和解析机制
- hdu 5434(状态压缩+矩阵优化)
- 【实操】深度学习网络万万千,到底怎么把我的数据放进去?
- wxWidgets:wxPGMultiButton类用法
- Fluent NHibernate之旅
- MySQL中有exists关键字吗_Mysql中EXISTS关键字用法、总结
- c语言小游戏 贴吧,【图片】C语言小游戏~贪吃蛇【c语言吧】_百度贴吧
- jms.jar 2.0_JMS API 1.1生产者和使用者
- 软件工程课程设计药品信息管理系统*
- matlab中换行操作
- Unity3D——打飞碟游戏(2)
- 设计模式|职责链模式--流程状态审批(枚举实现)
- 怪文書 / Dubious Document
- Android中RemoteViews的实现
- 用Python语言模型和LSTM做一个Drake饶舌歌词生成器!自己蒙了!
- java4android网易云,Android仿网易云音乐播放界面
- 哈希切割+布隆过滤器
- 朴素贝叶斯、费舍尔分类方法
热门文章
- html怎么渲染富文本,渲染-如何使项目视图在Q中渲染富文本(html)
- mysql objectid_MongoDB ObjectId详解及使用
- 2020高考河北对口计算机查分,河北省教育考试院官网2020高考查分:成绩查询入口...
- 薇美姿赴港上市:从小本生意做到“国货牙膏第一股”
- 8*8led矩阵的滚动广告幕的c语言程序,8*8LED矩阵滚动显示数字和字符
- Android O Working With Fonts
- Ubuntu18.04卸载显卡driver历险记(六十九)
- 基于RisParity+BlackLitterman的因子择时
- 带着新人学springboot的应用10(springboot+定时任务+发邮件)
- css文本溢出隐藏显示省略号