python - unsqueeze 在 pytorch 中有什么作用?
问题描述
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
参数指定。
因此,得到的未压缩张量具有相同的信息,但用于访问它们的索引不同。
这是一个有效 2d 矩阵的可视化表示squeeze
,unsqueeze
它从 2d 张量变为 3d 张量,因此新维度的位置有 3 种选择:
推荐阅读
- javascript - nodejs cli为[].values返回[功能:值]
- azure-devops - Publish Symbols Azure DevOps 任务创建的这个神秘的工件名称是什么?
- c - 该值未正确保存到数组中
- angular - 为什么模块可以有方法可以使用?
- c# - ASP.NET MVC 如何从嵌套对象的视图模型集合中动态创建表结构
- token - 如何在 Corda 中将令牌从节点移动到帐户
- python - 从网络摄像头流openCV中隔离并显示红色通道
- python - 具有验证和字符替换的多行文本小部件
- php - 需要用于 Google Oauth2 登录的 PHP 配方
- html - 在 HTML 字符串 (NodeJs) 中展开不必要的嵌套 div