gpt4 book ai didi

python - 在 PyTorch 中将张量的一部分分割成另一个张量的最快方法是什么?

转载 作者:行者123 更新时间:2023-12-05 04:25:00 25 4
gpt4 key购买 nike

我有如下所示的三个张量:

a = tensor([[5, 2, 3, 24],
[8, 66, 7, 89],
[9, 10, 1, 12]])

b = tensor([[10, 22, 13, 1],
[35, 6, 17, 3],
[11, 13, 5,8]])

c = tensor([[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0,0]])

我想使用这个公式更改 c 值:请注意,此时 c 中的最后一个值(列)没有更改。

c[:,:-1]= a[:,:-1] -a[:, 1:] - b[:, 1:] 

这意味着我将拥有

c = tensor([[5-2-22, 2-3-13, 3-24-1, 0],
[8-66-6, 66-7-17, 7-89-3, 0],
[9-10-13, 10-1-5, 1-12-8,0]])

>>> c = tensor([[-19, -14, -22, 0],
[-64, 42, -85, 0],
[-14, 4, -19,0]])

最后,要更改最后一列,我想使用 c[:, -1] = b[:, -1] - 1

我的最终张量将如下所示:

c = tensor([[-19, -14, -22, 0],
[-64, 42, -85, 2],
[-14, 4, -19,7]])

最佳答案

我认为您正在“覆盖”c 的元素这一事实导致您出错。尝试通过连接两部分“从头开始”创建 c:

c = torch.cat([a[:,:-1] -a[:, 1:] - b[:, 1:], 
b[:, -1:] - 1], dim=-1)

关于python - 在 PyTorch 中将张量的一部分分割成另一个张量的最快方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73380378/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com