文章首发及后续更新:https://mwhls.top/3696.html
新的更新内容请到mwhls.top查看。
无图/无目录/格式错误/更多相关请到上方的文章首发页面查看。
stackoverflow热门问题目录
如有翻译问题欢迎评论指出,谢谢。
StarckOverflar asked:
- 返回一个在指定位置拓展一维的新张量。[…]
>>> x = torch.tensor([1, 2, 3, 4])
>>> torch.unsqueeze(x, 0)
tensor([[ 1, 2, 3, 4]])
>>> torch.unsqueeze(x, 1)
tensor([[ 1],
[ 2],
[ 3],
[ 4]])
Answers:
norok2 – vote: 74
你可以观察一下数组处理前后的形状,第二个参数为 0
时,形状从 (4,)
变成了 (1, 4)
,第二个参数为 1
时,则变成了 (4, 1)
。即数组在第 0
维和第 1
维被拓展了一维,拓展的具体位置取决于第二个参数值。
与它效果相反的是 np.squeeze()
(这种命名方式来自MATLAB),用来移除一个维度。
iacob – vote: 34
unsqueeze
通过拓展一个额外的维度将 n 维张量转为 n+1 维。不过因为拓展位置的多样性,需要由 dim
参数指定具体位置。
例:unsqueeze
能以三种方式应用到一个二维矩阵:
这些输出的元素相同,但用于访问的索引不同。
Voontent – vote: 33
这是说在哪个地方拓展维度。torch.unsqueeze
会拓展张量的维度。
例如有一个张量形状为 (3),如果在第 0 维拓展维度,则形状变为 (1, 3),即 1 行 3 列。
StarckOverflar asked:
- Returns a new tensor with a dimension of size one inserted at the specified position. […]
返回一个在指定位置拓展一维的新张量。[…]>>> x = torch.tensor([1, 2, 3, 4]) >>> torch.unsqueeze(x, 0) tensor([[ 1, 2, 3, 4]]) >>> torch.unsqueeze(x, 1) tensor([[ 1], [ 2], [ 3], [ 4]])
Answers:
norok2 – vote: 74
If you look at the shape of the array before and after, you see that before it was (4,)
and after it is (1, 4)
(when second parameter is 0
) and (4, 1)
(when second parameter is 1
). So a 1
was inserted in the shape of the array at axis 0
or 1
, depending on the value of the second parameter.
你可以观察一下数组处理前后的形状,第二个参数为 0
时,形状从 (4,)
变成了 (1, 4)
,第二个参数为 1
时,则变成了 (4, 1)
。即数组在第 0
维和第 1
维被拓展了一维,拓展的具体位置取决于第二个参数值。
That is opposite of np.squeeze()
(nomenclature borrowed from MATLAB) which removes axes of size 1
(singletons).
与它效果相反的是 np.squeeze()
(这种命名方式来自MATLAB),用来移除一个维度。
iacob – vote: 34
unsqueeze
turns an n.d. tensor into an (n+1).d. one by adding an extra dimension of depth 1. However, since it is ambiguous which axis the new dimension should lie across (i.e. in which direction it should be unsqueezed), this needs to be specified by the dim
argument.unsqueeze
通过拓展一个额外的维度将 n 维张量转为 n+1 维。不过因为拓展位置的多样性,需要由 dim
参数指定具体位置。
e.g. unsqueeze
can be applied to a 2d tensor three different ways:
例:unsqueeze
能以三种方式应用到一个二维矩阵:
The resulting unsqueezed tensors have the same information, but the indices used to access them are different.
这些输出的元素相同,但用于访问的索引不同。
Voontent – vote: 33
It indicates the position on where to add the dimension. torch.unsqueeze
adds an additional dimension to the tensor.
这是说在哪个地方拓展维度。torch.unsqueeze
会拓展张量的维度。
So let\’s say you have a tensor of shape (3), if you add a dimension at the 0 position, it will be of shape (1,3), which means 1 row and 3 columns:
例如有一个张量形状为 (3),如果在第 0 维拓展维度,则形状变为 (1, 3),即 1 行 3 列。