lower_bounds = torch.max(set_1[:, :2].unsqueeze(1),
set_2[:, :2].unsqueeze(0)) #(n1, n2, 2)
此代码段使用 unsqueeze(1)
对于一个张量,但是 unsqeeze(0)
为别人。它们之间有什么区别?
最佳答案
unsqueeze
通过添加零深度的额外维度,将 n 维张量转换为 n+1 维张量。然而,由于新维度应该跨越哪个轴(即它应该在哪个方向“未压缩”)是不明确的,这需要由 dim
指定。争论。
因此,生成的未压缩张量具有相同的信息,但用于访问它们的索引不同。
这是 squeeze
的直观表示/unsqueeze
做一个有效的 2d 矩阵,它从一个 2d 张量到一个 3d 张量,因此新维度的位置有 3 个选择:
关于python - unsqueeze 在 pytorch 中有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62464462/