gpt4 book ai didi

memory - 在不复制内存的情况下重复 pytorch 张量

转载 作者:行者123 更新时间:2023-12-01 12:03:44 31 4
gpt4 key购买 nike

是否pytorch支持重复张量 无需分配更多内存 ?

假设我们有一个张量

t = torch.ones((1,1000,1000))
t10 = t.repeat(10,1,1)

重复 t 10 次将需要占用 10 倍的内存。有没有办法创建张量 t10没有分配更多的内存?

Here是一个相关的问题,但没有答案。

最佳答案

您可以使用 torch.expand

t = torch.ones((1, 1000, 1000))
t10 = t.expand(10, 1000, 1000)

请记住, t10只是对 t 的引用.例如,更改为 t10[0,0,0]将导致 t[0,0,0] 中的相同变化和 t10[:,0,0]的每一位成员.

除了直接访问,大多数操作在 t10 上执行将导致内存被复制,这将破坏引用并导致使用更多内存。例如:更改设备( .cpu().to(device=...).cuda() )、更改数据类型( .float().long().to(dtype=...) 4),或使用 |67914| .

关于memory - 在不复制内存的情况下重复 pytorch 张量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59757933/

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