文章目录
torch.unsqueeze
与 torch.squeeze 正好相反,它允许用户在指定的位置扩张张量的维度。
其中,dim 的范围是 [ − i n p u t . d i m ( ) − 1 , i n p u t . d i m ( ) + 1 ) [-input.dim() - 1, input.dim() + 1) [−input.dim()−1,input.dim()+1) 也就是允许用户以顺序、逆序的方式插入维度。
torch.unsqueeze(input, dim) → Tensor
举例来说,如果 d i m = − 1 dim=-1 dim=−1,张量的维度会从 ( A × B ) (A \times B) (A×B) 变成 ( A × B × 1 ) (A \times B \times 1) (A×B×1);如果 d i m = 0 dim=0 dim=0,维度会从 ( A × B ) (A \times B) (A×B) 变成 ( 1 × A × B ) (1 \times A \times B) (1×A×B);如果 d i m = 1 dim=1 dim=1 ,张量会从 ( A × B ) (A \times B) (A×B) 变成 ( A × 1 × B ) (A \times 1 \times B) (A×1×B)。
例程
>>> 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]])