torch 維度

立体风發表於2024-08-08
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]]])

相關文章