首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Torch张量不能使用索引数组深度复制

Torch张量不能使用索引数组深度复制
EN

Stack Overflow用户
提问于 2022-06-17 20:24:59
回答 2查看 29关注 0票数 0

我在试着深入复制张量的特定切片。假设a=torch.Tensor(1,2,3,4,5,6),b=a2:4,c=a[2,3]似乎b有深度拷贝,c是浅拷贝。但是我需要使用像2,3这样的索引数组来获得一些深拷贝切片。这有什么转机吗?我尝试了.reshape、.view、.contiguous(),但没有成功。谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-06-24 01:37:16

看起来视图()很有效!我使用.view()并使用简单索引(:,2:4,:)来选择连续行,而不是高级索引([:,2,3,:])。我注意到的一件事是,在使用.view()并选择想要的行之后,张量存储似乎会发生变化,而.view()之后的结果将无法再次应用另一个.view()将形状更改为另一个。

票数 0
EN

Stack Overflow用户

发布于 2022-06-23 08:32:53

这里有一个示例代码,但最好使用克隆函数,顺便说一句,尝试删除克隆函数以查看结果。

代码语言:javascript
运行
复制
import torch

if __name__ == "__main__":
    x = torch.tensor([1,2,3.])

    x_clone = x.clone()
    x_clone_b = x_clone.clone()

    x.mul_(-1)
    x_clone.add_(10)
    print(f'x = {x}')
    print(f'x_clone = {x_clone}')
    print(f'x_clone_b = {x_clone_b}')
    
Output
'''
x = tensor([-1., -2., -3.])
x_clone = tensor([11., 12., 13.])
x_clone_b = tensor([1., 2., 3.])
'''
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72664462

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档