PyTorch 张量广播

     2023-02-23     119

关键词:

【中文标题】PyTorch 张量广播【英文标题】:PyTorch Tensor broadcasting 【发布时间】:2021-12-31 10:11:14 【问题描述】:

我正在尝试弄清楚如何进行以下广播:

我有两个张量,大小分别为 (n1,N) 和 (n2,N)

我想要做的是将第一个张量的每一行与第二个张量的每一行相乘,然后将每个相乘的行结果相加,这样我的最终张量应该是 (n1,n2 )。

我试过了:

x1*torch.reshape(x2,(x2.size(dim=0),x2.size(dim=1),1))

但显然这不起作用..无法弄清楚如何做到这一点

【问题讨论】:

【参考方案1】:

您要查找的是来自PyTorch 和Numpy 的Tensordot 命令

由于您想计算沿 N 的点积,即 x1 的维度 1 和 x2 张量的维度 1,您需要通过提供 ([1], [1]) 沿两个张量的第一轴执行收缩到 Tensordot 中的 dims arg。这意味着 Torch 将分别在指定的 x1 轴 1 和指定的 x2 轴 1 上求和 x1x2 元素的乘积。提供给dims 的参数很混乱,这里有一个有用的线程来帮助理解如何使用Tensordothere

x1 = torch.arange(6.).reshape(2,3) 
>>> tensor([[0., 1., 2.],
            [3., 4., 5.]])
# x1 is Tensor of shape (2,3)

x2 = torch.arange(9.).reshape(3,3)
>>> tensor([[0., 1., 2.],
            [3., 4., 5.],
            [6., 7., 8.]])
# x2 is Tensor of shape (3,3)

x = torch.tensordot(x1, x2, dims=([1],[1]))
>>> tensor([[ 5., 14., 23.],
            [14., 50., 86.]])
# x is Tensor of shape (2,3)

【讨论】:

【参考方案2】:

您所描述的似乎实际上与在第一个张量和第二个张量的转置之间执行矩阵乘法相同。这可以这样做:

torch.matmul(x1, x2.T)

【讨论】:

如何将张量逐行乘以 PyTorch 中的向量?

】如何将张量逐行乘以PyTorch中的向量?【英文标题】:Howtomultiplyatensorrow-wisebyavectorinPyTorch?【发布时间】:2019-05-2800:18:48【问题描述】:当我有一个形状为[12,10]的张量m和一个形状为[12]的标量向量s时,如何将m的每一行与s中的相... 查看详情

[pytroch系列-11]:pytorch基础-张量tensor元素的排序(代码片段)

作者主页(文火冰糖的硅基工坊):https://blog.csdn.net/HiWangWenBing本文网址:https://blog.csdn.net/HiWangWenBing/article/details/119459192目录第1章Tensor运算概述1.1概述1.3 “inplace“运算 1.4 Tensor的广播机制:不同维度的张量运算1.5环境准备... 查看详情

[pytroch系列-7]:pytorch基础-张量tensor的算术运算(代码片段)

作者主页(文火冰糖的硅基工坊):https://blog.csdn.net/HiWangWenBing本文网址:https://blog.csdn.net/HiWangWenBing/article/details/119428023目录 第1章 Tensor运算概述1.1概述1.3 “inplace“运算 1.4 Tensor的广播机制:不同维度的tensor实例运算 查看详情

[pytroch系列-12]:pytorch基础-张量tensor线性运算(点乘叉乘)(代码片段)

作者主页(文火冰糖的硅基工坊):https://blog.csdn.net/HiWangWenBing本文网址:https://blog.csdn.net/HiWangWenBing/article/details/119463478目录 第1章Tensor运算概述1.1概述1.3 “inplace“运算 1.4 Tensor的广播机制:不同维度的张量运算1.5环境准... 查看详情

[pytroch系列-9]:pytorch基础-张量tensor元素的统计运算(代码片段)

 作者主页(文火冰糖的硅基工坊):https://blog.csdn.net/HiWangWenBing本文网址:https://blog.csdn.net/HiWangWenBing/article/details/119443802目录第1章Tensor运算概述1.1概述1.3 “inplace“运算 1.4 Tensor的广播机制:不同维度的tensor实例运算1 查看详情

[pytroch系列-8]:pytorch基础-张量tensor的取整运算(代码片段)

作者主页(文火冰糖的硅基工坊):https://blog.csdn.net/HiWangWenBing本文网址:https://blog.csdn.net/HiWangWenBing/article/details/119429253目录 第1章Tensor运算概述1.1概述1.3 “inplace“运算 1.4 Tensor的广播机制:不同维度的tensor实例运算1 查看详情

[pytroch系列-10]:pytorch基础-张量tensor元素的比较运算(代码片段)

作者主页(文火冰糖的硅基工坊):https://blog.csdn.net/HiWangWenBing本文网址:https://blog.csdn.net/HiWangWenBing/article/details/119456242目录第1章Tensor运算概述1.1概述1.3 “inplace“运算 1.4 Tensor的广播机制:不同维度的tensor实例运算1. 查看详情

[pytroch系列-6]:pytorch基础-张量tensor的三角函数运算(代码片段)

作者主页(文火冰糖的硅基工坊):https://blog.csdn.net/HiWangWenBing本文网址:https://blog.csdn.net/HiWangWenBing/article/details/119384608目录第1部分:Tensor运算概述1.1概述1.3 “inplace“运算 1.4 Tensor的广播机制:不同维度的ten 查看详情

pytorch张量操作python切片操作(代码片段)

...同广播机制更高维的演示总结YOLOv5Focus样例参考梳理一下Pytorch的张量切片操作一维张量定义一维向量的操作其实很像numpy一维数组,基本定义如下:1.默认步长为12.起始索引:结束索引是一个**左闭右开区[)**间... 查看详情

如何将 pytorch 整数张量转换为布尔张量?

】如何将pytorch整数张量转换为布尔张量?【英文标题】:Howtoconvertapytorchtensorofintstoatensorofbooleans?【发布时间】:2019-05-0221:32:15【问题描述】:我想将整数张量转换为布尔张量。具体来说,我希望能够拥有一个将tensor([0,10,0,16])转... 查看详情

pytorch:张量的拼接切分索引

本文已收录于Pytorch系列专栏:​​Pytorch入门与实践​​专栏旨在详解Pytorch,精炼地总结重点,面向入门学习者,掌握Pytorch框架,为数据分析,机器学习及深度学习的代码能力打下坚实的基础。免费订阅,持续更新。一、张量... 查看详情

pytorch:了解tensor(张量)及其创建方法

本文已收录于Pytorch系列专栏:​​Pytorch入门与实践​​专栏旨在详解Pytorch,精炼地总结重点,面向入门学习者,掌握Pytorch框架,为数据分析,机器学习及深度学习的代码能力打下坚实的基础。免费订阅,持续更新。认识张量... 查看详情

在 PyTorch 中将 5D 张量转换为 4D 张量

】在PyTorch中将5D张量转换为4D张量【英文标题】:Convert5Dtensorto4DtensorinPyTorch【发布时间】:2020-12-2712:19:31【问题描述】:在PyTorch中,我有一个尺寸为Bx9xCxHxW的5D张量X。我想将其转换为尺寸为Bx9CxHxW的4D张量Y,以便以通道方式进行... 查看详情

在 PyTorch 中使用张量索引多维张量

】在PyTorch中使用张量索引多维张量【英文标题】:Indexingamulti-dimensionaltensorwithatensorinPyTorch【发布时间】:2019-02-0502:46:21【问题描述】:我有以下代码:a=torch.randint(0,10,[3,3,3,3])b=torch.LongTensor([1,1,1,1])我有一个多维索引b并想用它来... 查看详情

如何在 pytorch 和 tensorflow 中使用张量核心?

】如何在pytorch和tensorflow中使用张量核心?【英文标题】:Howtousetensorcoresinpytorchandtensorflow?【发布时间】:2021-12-2823:30:01【问题描述】:我正在使用带有张量核心的NvidiaRTXGPU,我想确保pytorch/tensorflow正在使用它的张量核心。我在... 查看详情

Pytorch 几何:张量大小有问题

】Pytorch几何:张量大小有问题【英文标题】:Pytorchgeometric:Havingissueswithtensorsizes【发布时间】:2020-12-1600:30:00【问题描述】:这是我第一次使用Pytorch和Pytorch几何。我正在尝试使用PytorchGeometric创建一个简单的图神经网络。我正在... 查看详情

PyTorch 向量/矩阵/张量的元素乘积

】PyTorch向量/矩阵/张量的元素乘积【英文标题】:PyTorchelement-wiseproductofvectors/matrices/tensors【发布时间】:2019-04-2112:28:30【问题描述】:在PyTorch中,如何获得两个向量/矩阵/张量的element-wiseproduct?对于谷歌人来说,这个产品也被... 查看详情

Pytorch 张量到 numpy 数组

】Pytorch张量到numpy数组【英文标题】:Pytorchtensortonumpyarray【发布时间】:2018-09-2022:32:48【问题描述】:我有一个pytorch张量,大小为torch.Size([4,3,966,1296])我想使用以下代码将其转换为numpy数组:imgs=imgs.numpy()[:,::-1,:,:]谁能解释一下... 查看详情