torch 维度

a = torch.randn(3)
a
tensor([ 0.4789,  0.1794, -1.5215])
a.unsqueeze(-1)
tensor([[ 0.4789],
        [ 0.1794],
        [-1.5215]])

上述代码中,tensor变量a是一个一维 tensor 变量。当用 unsqueeze (扩张)为 二维变量后,为什么变为竖着写了?
这个小问题,以前也没有细想过。
现在考虑一下,a中每个元素都扩张了一个维度,这样就变成竖写了,代表每行 1 个元素。

若再次 unsqueeze 扩张维度,那么表示方法上就是再加一层方括号,表示在另外一个维度。

a.unsqueeze(-1).unsqueeze(-1)
tensor([[[ 0.4789]],

        [[ 0.1794]],

        [[-1.5215]]])

注意看这个加方括号的位置,是每一行的每个元素都加了一个方括号。

posted @ 2024-08-08 22:34  立体风  阅读(8)  评论(0编辑  收藏  举报