探究torch.dot、torch.mv和torch.mm的区别;
时间: 2023-12-02 13:41:48 浏览: 90
torch.dot、torch.mv和torch.mm都是PyTorch中的矩阵运算函数,它们的区别如下:
1. torch.dot:计算两个张量的点积,即对应元素相乘后相加得到一个标量值。要求两个张量必须是1维的,即向量。
2. torch.mv:计算一个矩阵和一个向量的乘积,得到一个向量。要求矩阵的列数和向量的长度必须相等。
3. torch.mm:计算两个矩阵的乘积,得到一个矩阵。要求第一个矩阵的列数等于第二个矩阵的行数。
下面是一个例子,演示了这三个函数的使用方法:
```python
import torch
# 定义两个向量
a = torch.tensor([2, 3])
b = torch.tensor([2, 1])
# 计算点积
dot_product = torch.dot(a, b)
print("Dot product of a and b:", dot_product)
# 定义一个矩阵和一个向量
matrix = torch.tensor([[1, 2], [3, 4]])
vector = torch.tensor([5, 6])
# 计算矩阵和向量的乘积
matrix_vector_product = torch.mv(matrix, vector)
print("Matrix-vector product:", matrix_vector_product)
# 定义两个矩阵
matrix1 = torch.tensor([[1, 2], [3, 4]])
matrix2 = torch.tensor([[5, 6], [7, 8]])
# 计算矩阵的乘积
matrix_product = torch.mm(matrix1, matrix2)
print("Matrix product:", matrix_product)
```
阅读全文