pytorch中的广播机制

当两个张量的形状不完全匹配时,PyTorch中的广播机制可以自动地将它们扩展到相同的形状,以便进行元素级别的操作,如求和。

以下是一个例子,演示了如何使用广播机制进行张量的求和:

import torch

# 创建两个张量
a = torch.tensor([[1, 2, 3],
                  [4, 5, 6]])  # 形状为 (2, 3)

b = torch.tensor([10, 20, 30])  # 形状为 (3,)

# 使用广播进行求和
c = a + b

print(c)

在这个例子中,我们创建了一个形状为(2, 3)的张量a,和一个形状为(3,)的张量b。它们的形状不匹配,无法直接进行相加。

但是,由于PyTorch的广播机制,它会自动地将b张量扩展为(2, 3)的形状,使得它的每一行都与a的对应行进行相加。相当于将b在第0维度(行)进行复制,扩展为:

[[10, 20, 30],
 [10, 20, 30]]

然后,a和扩展后的b形状匹配,可以进行元素级别的求和。最终的结果保存在张量c中,形状与a相同。

输出结果为:

tensor([[11, 22, 33],
        [14, 25, 36]])

这里,c的每个元素都是对应位置的ab元素的和。

通过广播机制,我们可以方便地对不同形状的张量进行逐元素的操作,而不需要显式地扩展维度。这种方式能够提高代码的简洁性和可读性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值