當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python PyTorch Tensor.view用法及代碼示例


本文簡要介紹python語言中 torch.Tensor.view 的用法。

用法:

Tensor.view(*shape) → Tensor

參數

shape(torch.Size或者詮釋...) -所需尺寸

參數

dtype(torch.dtype) -所需的數據類型

返回與 self 張量具有相同數據但具有不同 shape 的新張量。

返回的張量共享相同的數據,並且必須具有相同數量的元素,但可能具有不同的大小。對於要查看的張量,新視圖大小必須與其原始大小和步幅兼容,即每個新視圖維度必須是原始維度的子空間,或者僅跨越滿足以下條件的原始維度 contiguity-like 條件 ,

否則,如果不複製它(例如,通過 contiguous() ),則無法將 self 張量視為 shape 。當不清楚是否可以執行 view() 時,建議使用 reshape() ,如果形狀兼容,則返回視圖,否則複製(相當於調用 contiguous() )。

例子:

>>> x = torch.randn(4, 4)
>>> x.size()
torch.Size([4, 4])
>>> y = x.view(16)
>>> y.size()
torch.Size([16])
>>> z = x.view(-1, 8)  # the size -1 is inferred from other dimensions
>>> z.size()
torch.Size([2, 8])

>>> a = torch.randn(1, 2, 3, 4)
>>> a.size()
torch.Size([1, 2, 3, 4])
>>> b = a.transpose(1, 2)  # Swaps 2nd and 3rd dimension
>>> b.size()
torch.Size([1, 3, 2, 4])
>>> c = a.view(1, 3, 2, 4)  # Does not change tensor layout in memory
>>> c.size()
torch.Size([1, 3, 2, 4])
>>> torch.equal(b, c)
False
view(dtype) → Tensor

返回與 self 張量具有相同數據但具有不同 dtype 的新張量。 dtype 每個元素的字節數必須與 self 的 dtype 相同。

警告

TorchScript 不支持此重載,在 Torchscript 程序中使用它會導致未定義的行為。

例子:

>>> x = torch.randn(4, 4)
>>> x
tensor([[ 0.9482, -0.0310,  1.4999, -0.5316],
        [-0.1520,  0.7472,  0.5617, -0.8649],
        [-2.4724, -0.0334, -0.2976, -0.8499],
        [-0.2109,  1.9913, -0.9607, -0.6123]])
>>> x.dtype
torch.float32

>>> y = x.view(torch.int32)
>>> y
tensor([[ 1064483442, -1124191867,  1069546515, -1089989247],
        [-1105482831,  1061112040,  1057999968, -1084397505],
        [-1071760287, -1123489973, -1097310419, -1084649136],
        [-1101533110,  1073668768, -1082790149, -1088634448]],
    dtype=torch.int32)
>>> y[0, 0] = 1000000000
>>> x
tensor([[ 0.0047, -0.0310,  1.4999, -0.5316],
        [-0.1520,  0.7472,  0.5617, -0.8649],
        [-2.4724, -0.0334, -0.2976, -0.8499],
        [-0.2109,  1.9913, -0.9607, -0.6123]])

>>> x.view(torch.int16)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
RuntimeError: Viewing a tensor as a new dtype with a different number of bytes per element is not supported.

相關用法


注:本文由純淨天空篩選整理自pytorch.org大神的英文原創作品 torch.Tensor.view。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。