PyTorch学习(12):PyTorch的张量相乘(torch.matmul)

PyTorch学习(1):torch.meshgrid的使用-CSDN博客

PyTorch学习(2):torch.device-CSDN博客

PyTorch学习(9):torch.topk-CSDN博客

PyTorch学习(10):torch.where-CSDN博客

PyTorch学习(11):PyTorch的形状变换(view, reshape)与维度变换(transpose, permute)-CSDN博客


目录

[1. 写在前面](#1. 写在前面)

[2. 基本用法](#2. 基本用法)

[3. 高级用法](#3. 高级用法)

[4. 注意事项](#4. 注意事项)

[5. 例程](#5. 例程)


1. 写在前面

torch.matmul()是PyTorch库中用于执行矩阵乘法的函数。它可以处理不同尺寸的矩阵,包括批量矩阵和张量。该函数的特点在于能够利用Python的广播机制,处理维度不同的张量结构进行相乘操作。

torch.matmul也可以使用"@"符号来替代。

2. 基本用法

当两个张量都是一维的,torch.matmul()返回两个向量的点积。

当两个张量都是二维的,torch.matmul()返回矩阵乘积。

如果第一个参数是一维张量,第二个参数是二维张量,torch.matmul()在一维张量的前面增加一个维度,然后进行矩阵乘法,矩阵乘法结束后移除添加的维度。

如果第一个参数是二维张量,第二个参数是一维张量,torch.matmul()返回矩阵×向量的积。

如果两个参数至少为一维,且其中一个参数的维度大于等于2,torch.matmul()会进行批量矩阵乘法。

3. 高级用法

对于高维张量,torch.matmul()可以进行批量矩阵乘法。具体来说,如果输入是一个形状为(j × 1 × n × n)的张量,另一个是形状为(k × n × n)的张量,输出将是形状为(j × k × n × n)的张量。

torch.matmul()函数还支持在特定维度上进行广播,即在不匹配的维度上复制数据以使其尺寸一致,从而进行矩阵乘法。

4. 注意事项

在使用torch.matmul()时,需要注意矩阵乘法的基本规则,即第一个矩阵的列数必须等于第二个矩阵的行数。

如果遇到维度不匹配的情况,可以使用torch.Tensor.view()或torch.Tensor.reshape()函数来调整张量的形状。

在神经网络的训练和推理中,torch.matmul()函数是实现全连接层、卷积层等操作的关键组件。

5. 例程

python 复制代码
import torch


# 创建两个一维张量(向量)

vector1 = torch.tensor([1, 2, 3])

vector2 = torch.tensor([4, 5, 6])

# 使用torch.matmul()计算点积

dot_product = torch.matmul(vector1, vector2)

print("Dot product of two vectors:", dot_product)

# 创建两个二维张量(矩阵)

matrix1 = torch.tensor([[1, 2], [3, 4]])

matrix2 = torch.tensor([[5, 6], [7, 8]])

# 使用torch.matmul()进行矩阵乘法

matrix_product = torch.matmul(matrix1, matrix2)

print("Matrix multiplication result:\n", matrix_product)

# 创建一个一维张量和一个二维张量

vector = torch.tensor([1, 2, 3])

matrix = torch.tensor([[4, 5], [6, 7], [8, 9]])

# 使用torch.matmul()进行矩阵乘法,其中一维张量会被视为列向量

result = torch.matmul(vector, matrix)

print("Matrix multiplication with a vector and a matrix:\n", result)

# 创建两个三维张量(批量矩阵)

batch1 = torch.tensor([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])

batch2 = torch.tensor([[[9, 10], [11, 12]], [[13, 14], [15, 16]]])

# 使用torch.matmul()进行批量矩阵乘法

batch_product = torch.matmul(batch1, batch2)

print("Batch matrix multiplication result:\n", batch_product)
相关推荐
维基框架12 分钟前
坊间传闻 OpenAI 将要发布GPT-6 Sol 模型
人工智能·pytorch·python
浔溺14 小时前
al+大数据每日学习笔记39
pytorch
ysu_031419 小时前
PINNs的参数反演——从“正问题”到“逆问题”的工程改造
人工智能·pytorch·深度学习·mcmc·参数反演·逆问题·darcy流
玫幽倩1 天前
2026第二届湾区杯网络安全大赛决赛(AI专项赛道静态题wp)
pytorch·python·ai·agent·ctf·rag·湾区杯
论文复现现场1 天前
课程作业要跑 PyTorch 训练,学校机房不够用去哪租?云 GPU 选型、环境迁移与防丢数据指南
人工智能·pytorch·深度学习·云计算·gpu·cuda
崖边看雾1 天前
深度学习——PyTorch 实现 CBOW 词向量模型:从数据预处理到训练与保存
pytorch·深度学习
ysu_03142 天前
边界条件的硬约束与软约束——从试函数构造到谱分析诊断
人工智能·pytorch·深度学习·物理信息神经网络·pinns·边界条件·ntk
会飞锦鲤2 天前
基于 Mask R-CNN 的药片缺陷检测系统
人工智能·pytorch·python·神经网络·resnet-50
马剑威(威哥爱编程)2 天前
【共创稿事节】HarmonyOS 7 Agent A2A 实战:让日程智能体和打车智能体自己谈成一单
pytorch·深度学习·harmonyos
内蒙深海大鲨鱼2 天前
8-13课程归纳
pytorch