python - unsqueeze 在 pytorch 中有什么作用?

标签 python pytorch torch

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 个选择:
enter image description here

关于python - unsqueeze 在 pytorch 中有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62464462/

相关文章:

python - 最小化 QTreeWidgetItem 中 QTextEdit 的大小

machine-learning - 计算卷积层的输出大小

python - Can't convert cuda :0 device type tensor to numpy. Use Tensor.cpu() to copy the tensor to host memory 先

python - 牛顿法 PyTorch 实现中的更新步骤

c++ - Raspberry 上的 Libtorch 无法加载 pt 文件但在 ubuntu 上工作

python - 如何有条件地创建列表?

Python:使用 Bottle 和 Tornado Web 服务器来处理并发连接

machine-learning - 如何在代码中使用 PyTorch PackedSequence?

python - 将列表转换为 Pandas 时间序列

pytorch - 在pytorch中连接两个不同形状的 torch 张量