文章目录
一、点积
使用 torch.dot() 计算点积
torch.dot(input, tensor)
- input:第一个输入张量,必须是一维张量。
- tensor:第二个输入张量,必须是一维张量,并且与 input 具有相同的大小。
import torch
a = torch.tensor([1, 2, 3])
b = torch.tensor([4, 5, 6])
result = torch.dot(a, b)
print(result)# tensor(32)
使用 torch.sum() 计算点积
可以使用 torch.sum() 函数进行张量的逐元素相乘并求和,从而计算点积:
import torch
a = torch.tensor([1, 2, 3])
b = torch.tensor([4, 5, 6])
result = torch.sum(a * b)
print(result)# tensor(32)
二、矩阵乘法
torch.matmul(input, other, out=None)
- input:输入的第一个张量,可以是二维或多维张量。
- other:输入的第二个张量,可以是二维或多维张量。
- out(可选):输出张量,用于指定结果的存储位置。
import torch
a = torch.tensor([[1, 2],
[3, 4]])
b = torch.tensor([[5, 6],
[7, 8]])
result = torch.matmul(a, b)
print(result)
tensor([[19, 22],
[43, 50]])
三、逐元素乘法
在 PyTorch 中,可以使用 torch.mul()、torch.multiply() 或直接使用 * 运算符来执行张量的逐元素相乘操作。
使用 torch.mul() 函数进行逐元素相乘:
torch.mul(input, other, out=None)
参数说明:
- input:输入张量。
- other:用于逐元素相乘的张量。
- out(可选):输出张量,用于指定结果的存储位置。
import torch
a = torch.tensor([1, 2, 3])
b = torch.tensor([4, 5, 6])
result = torch.mul(a, b)
print(result)
tensor([ 4, 10, 18])
使用 * 运算符进行逐元素相乘
import torch
a = torch.tensor([1, 2, 3])
b = torch.tensor([4, 5, 6])
result = a * b
print(result)
tensor([ 4, 10, 18])
四 torch.prod和torch.mul和torch.matmul()的区别
1.torch.prod()
- 功能:计算张量中元素的乘积。
- 输入:接受一个输入张量,并对其所有元素进行累积乘法。
- 输出:返回一个标量张量,表示输入张量中所有元素的乘积。
import torch
x = torch.tensor([[1, 2], [3, 4]])
product = torch.prod(x)
print(product) # 输出: tensor(24)
2.torch.mul()
- 功能:执行元素级乘法操作。
- 输入:接受两个输入张量,并对它们的对应元素进行逐元素相乘。
- 输出:返回一个新的张量,其中包含两个输入张量对应元素的乘积。
import torch
x = torch.tensor([[1, 2], [3, 4]])
elementwise_product = torch.mul(x, x)
print(elementwise_product) # 输出: tensor([[ 1, 4],
# [ 9, 16]])
3.torch.matmul()
- 功能:执行矩阵乘法操作。
- 输入:接受两个输入张量,可以是标量、向量、矩阵或批量矩阵,并执行矩阵乘法操作。
- 输出:返回两个输入张量的矩阵乘法结果。
import torch
x = torch.tensor([[1, 2], [3, 4]])
y = torch.tensor([[5, 6], [7, 8]])
matrix_product = torch.matmul(x, y)
print(matrix_product) # 输出: tensor([[19, 22],
# [43, 50]])