pytorch统计矩阵非0的个数_Pytorch学习笔记(11) Pytorch中的矩阵运算

本文介绍了PyTorch中的矩阵运算,包括torch.dot用于点积,torch.mm和torch.bmm分别处理矩阵乘法和批量矩阵乘法,以及torch.einsum这个强大的工具,它可以实现大多数矩阵操作,如点积、外积、转置等。通过einsum,可以编写更紧凑、高效的代码。
摘要由CSDN通过智能技术生成

写过一篇,numpy中dot()、outer()、multiply()以及matmul()的区别,介绍了numpy中的点积、外积、转置、矩阵-向量乘法、矩阵-矩阵乘法等计算方法。

在Pytorch中这些矩阵运算是很常见的,几乎存在于每个模型中。那么在Pytorch中如何实现的呢?同时面对这么多不同的计算方法,有没有一种统一的方法呢?接下来就详细介绍

一、概述

点乘(内积) : torch.dot

计算两个张量的点乘(内乘),两个张量都为1-D 向量。

矩阵乘法: torch.mm与torch.bmm

前者实现矩阵乘法,后者实现批量矩阵乘法。

集大成者: torch.einsum

爱因斯坦求和约定(einsum)这个方法可以实现绝大多数的矩阵操作,包括点积、外积、转置、矩阵-向量乘法、矩阵-矩阵乘法。一旦理解并能利用einsum,除了不用记忆和频繁查找特定库函数这个好处以外,你还能够更迅速地编写更加紧凑、高效的代码。

二、点积: torch.dot

numpy中的np.dot可以实现很多矩阵运算,包括点积、外积、矩阵乘法等;torch.dot 只能实现张量的点积,张量都需要是一维向量。

>>> a = torch.arange(6)

>>> b = torch.arange(6)

>>> torch.dot(a,b)

tensor(55)

>>> torch.einsum('i,i->', [a, b])

tensor(55)

三、torch.mm 与 torch.bmm

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值