广播机制:当2个张量形状不同时,会对两者的元素进行复制,使形状相同后再操作。
先来个简单的例子
代码1
import torch
a = torch.ones(3) # 生成一个长度为3的全1张量,即 [1, 1, 1]
print(a)
b = a + 10 # 张量a中的每个元素都加10, 即 [1+10, 1+10, 1+10],即10广播到[10, 10, 10]
print(b)
运行结果2
tensor([1., 1., 1.])
tensor([11., 11., 11.])
再来一个复杂点的例子
代码2
import torch
x = torch.tensor([[1, 2]])
y = torch.tensor([[1, 1], [1, 1]])
z = x + y # x和y的形状不一样,但是可以广播。x广播到[[1, 2], [1, 2]],y还是[[1, 1], [1, 1]],然后相加
print(z)
运行结果2
tensor([[2, 3],
[2, 3]])
您可以选择一种方式赞助本站
支付宝扫一扫赞助
微信钱包扫描赞助
赏