PyTorch文档中提到:
返回一个新的张量,在指定位置插入大小为1的维度。[…]
>>> 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]])
回答:
如果你观察数组在操作前后的形状,会发现操作前是(4,)
,操作后当第二个参数为0
时变为(1, 4)
,当第二个参数为1
时变为(4, 1)
。因此,根据第二个参数的值,在数组形状的轴0
或1
处插入了一个1
。
这与np.squeeze()
(名称借鉴自MATLAB)正好相反,后者会移除大小为1
的轴(单例轴)。