Computer >> Máy Tính >  >> Lập trình >> Python

Làm thế nào để thay đổi kích thước một tensor trong PyTorch?

Để thay đổi kích thước của tensor PyTorch, chúng tôi sử dụng .view () phương pháp. Chúng ta có thể tăng hoặc giảm kích thước của tensor, nhưng chúng ta phải đảm bảo rằng tổng số phần tử trong tensor phải khớp trước và sau khi thay đổi kích thước.

Các bước

  • Nhập thư viện được yêu cầu. Trong tất cả các ví dụ Python sau, thư viện Python bắt buộc là torch . Đảm bảo rằng bạn đã cài đặt nó.

  • Tạo một tensor PyTorch và in nó.

  • Thay đổi kích thước tensor được tạo ở trên bằng cách sử dụng .view () và gán giá trị cho một biến. .view () không thay đổi kích thước tensor ban đầu; nó chỉ cung cấp một chế độ xem với kích thước mới, như tên gọi của nó.

  • Cuối cùng, in tensor sau khi thay đổi kích thước.

Ví dụ 1

# Python program to resize a tensor in PyTorch
# Import the library
import torch

# Create a tensor
T = torch.Tensor([1, 2, 3, 4, 5, 6])
print(T)

# Resize T to 2x3
x = T.view(2,3)
print("Tensor after resize:\n",x)

# Other way to resize T to 2x3
x = T.view(-1,3)
print("Tensor after resize:\n",x)

# Other way resize T to 2x3
x = T.view(2,-1)
print("Tensor after resize:\n",x)

Đầu ra

Khi bạn chạy mã Python 3 ở trên, nó sẽ tạo ra kết quả sau

tensor([1., 2., 3., 4., 5., 6.])
Tensor after resize:
tensor([[1., 2., 3.],
         [4., 5., 6.]])
Tensor after resize:
tensor([[1., 2., 3.],
         [4., 5., 6.]])
Tensor after resize:
tensor([[1., 2., 3.],
         [4., 5., 6.]])

Ví dụ 2

# Import the library
import torch

# Create a tensor shape 4x3
T = torch.Tensor([[1,2,3],[2,1,3],[2,3,5],[5,6,4]])
print(T)

# Resize T to 3x4
x = T.view(-1,4)
print("Tensor after resize:\n",x)

# Other way to esize T to 3x4
x = T.view(3,-1)
print("Tensor after resize:\n",x)

# Resize T to 2x6
x = T.view(2,-1)
print("Tensor after resize:\n",x)

Đầu ra

Khi bạn chạy mã Python 3 ở trên, nó sẽ tạo ra kết quả sau

tensor([[1., 2., 3.],
         [2., 1., 3.],
         [2., 3., 5.],
         [5., 6., 4.]])
Tensor after resize:
tensor([[1., 2., 3., 2.],
         [1., 3., 2., 3.],
         [5., 5., 6., 4.]])
Tensor after resize:
tensor([[1., 2., 3., 2.],
         [1., 3., 2., 3.],
         [5., 5., 6., 4.]])
Tensor after resize:
tensor([[1., 2., 3., 2., 1., 3.],
         [2., 3., 5., 5., 6., 4.]])