Tensors and Their Operations¶
约 238 个字 33 行代码 预计阅读时间 1 分钟
Shape Operations¶
squeeze & unsqueeze¶
torch.squeeze(input: Tensor, dim: Optional[int, List[int]] = None) -> Tensortorch.unsqueeze(input: Tensor, dim: int) -> Tensor
torch.squeeze 移除张量形状中为 1 的维度/Singleton Dimensions,比如将形状为 (1, 3, 1, 5) 的张量变为 (3, 5)。添加参数 torch.squeeze(dim) 可以指定移除特定参数。但是,其返回的张量和输入的张量共享存储,因此改变其中一个的内容会改变另外一个的内容。
repeat & expand¶
torch.repeat(input: Tensor, *repeats) -> Tensortorch.expand(input: Tensor, *sizes) -> Tensor
torch.repeat 和 torch.expand 都是用于扩展张量的维度,但是 torch.repeat 是用于重复张量的元素,而 torch.expand 是用于扩展张量的维度(只能处理 Singleton Dimensions 也就是形状中为 1 的维度),并且返回一个新的 view。需要注意的是,扩展张量中的多个元素可能指向内存中的同一个位置,因此原地操作可能会导致不正确的结果。