Pytorch中的哈达玛积(Hadamard product)与矩阵乘积(Matrix product)的区别

在Pytorch中tensor处理时我们经常会遇到矩阵之间的乘法运算,而对于不同的要求会有不同的计算方式,特别是Hadamard积与矩阵乘积之间的差别。

哈达玛积:对于两个举证或者数组A和B,A和B的维度至少是2,如果是二位数组,则AB两个数组相对应的维度的值必须相等,例如A为m*n的数组,仅当数组B满足维度为m*n时,A与B才能进行哈达玛积运算,具体计算方式如下:

代码示例:

a = torch.Tensor([[1,2], [3,4]])
b = torch.Tensor([[5,6], [7,8]])
hadamard_product = a * b
print('hadamard_product:', hadamard_product)

hadamard_product: tensor([[ 5., 12.],
        [21., 32.]])

矩阵乘积:矩阵乘积就是线性代数中基本的矩阵乘法运算,它要求两个矩阵A和B的行数与列数相等,具体说明如下:

代码示例:

a = torch.Tensor([[1,2], [3,4]])
b = torch.Tensor([[5,6], [7,8]])
matrix_product = torch.matmul(a, b)
print('matrix_product:', matrix_product)

matrix_product: tensor([[19., 22.],
        [43., 50.]])

注意:在Pytorch中,两个张量A和B只是进行A*B运算即是哈达玛积,如果需要进行矩阵运算,则需要调用torch.matmul()函数,简单来说哈达玛积不需要调用函数,而矩阵乘积需要调用矩阵乘法函数。Pytorch中是这样,其实numpy中的使用方式也是如此。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值