pytorch的点积、矩阵乘法、逐元素乘法


在这里插入图片描述

一、点积

使用 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]])
  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值