Pytorch torch.add() torch.add_() 用法

这篇博客介绍了PyTorch中torch.add()函数用于张量相加的操作,包括格式相同的直接相加和不同格式时的扩容相加。还探讨了带下划线的in-place运算,即修改原变量。通过实例代码展示了torch.add()的用法,包括常数乘以张量的加法和张量间的加法,并对比了in-place操作前后张量的变化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

torch.add():对两个张量进行相加,若格式不同则以复制的方式进行扩容后再相加。
以 “下划线 _” 结尾的 ,均为in-place。
可以简单理解为:修改了对应变量中的数值。
Torch里面所有带 “下划线 ” 的操作,都是in-place的。
torch.add
():对两个张量进行相加,但格式需相同。

实例代码

x = torch.arange(1., 6.)
print(x)
print(torch.topk(x, 3))

a = torch.randn(4)
print(a)
b = torch.randn(4, 1)
print(b)
# alpha * b + a, 维度不够的地方自动扩容
print(torch.add(a, b, alpha=10))

print("p, q:")
p = torch.randn(4)
print(p)
q = torch.randn(4)
print(q)
p.add(q, alpha=10)
print(p)
p.add_(q, alpha=10)
print(p)

运行结果

tensor([1., 2., 3., 4., 5.])
torch.return_types.topk(
values=tensor([5., 4., 3.]),
indices=tensor([4, 3, 2]))
tensor([ 0.4467, -1.0670, -0.2640, -0.9347])
tensor([[ 1.4514],
        [-1.9113],
        [-0.3101],
        [-0.3147]])
tensor([[ 14.9611,  13.4474,  14.2505,  13.5797],
        [-18.6661, -20.1797, -19.3767, -20.0474],
        [ -2.6547,  -4.1683,  -3.3653,  -4.0360],
        [ -2.7007,  -4.2144,  -3.4114,  -4.0821]])
p, q:
tensor([ 1.6037,  1.4193, -0.4076,  1.3390])
tensor([0.2374, 1.1236, 0.8439, 0.7530])
tensor([ 1.6037,  1.4193, -0.4076,  1.3390])
tensor([ 3.9780, 12.6551,  8.0318,  8.8687])
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值