首页 > 解决方案 > 在 PyTorch 中扩展张量的一部分

问题描述

我在 GPU 内存上分配了一个形状为 NxCxHxW 的 4D 张量。我想获取一些元素(沿 N 维),并在不分配新内存的情况下扩展它们(即,将每个元素重复 n 次)。我可以对所有元素执行以下操作:

batch.unsqueeze(0).expand(n, -1, -1, -1, -1)

有没有办法做到这一点,但只能从批次中选择元素?(例如,仅针对批次的第一个元素,并且仍然没有分配新内存)。

如何使用内存分配执行此操作的示例:

torch.cat((batch.unsqueeze(0), batch[:num_elems_to_expand].unsqueeze(0).expand(n, -1, -1, -1, -1)), dim=0)

谢谢

标签: pytorch

解决方案


推荐阅读