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

Làm thế nào để sắp xếp các phần tử của một tensor trong PyTorch?

Để sắp xếp các phần tử của tensor trong PyTorch, chúng ta có thể sử dụng phương thức torch.sort (). Phương thức này trả về hai tenxơ. Tensor đầu tiên là tensor với các giá trị được sắp xếp của các phần tử và tensor thứ hai là tensor chỉ số của các nguyên tố trong tensor ban đầu. Chúng ta có thể tính toán các tensors 2D, khôn ngoan theo hàng và khôn ngoan theo cột.

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ó.

  • Để sắp xếp các phần tử của tensor được tạo ở trên, hãy tính torch.sort (input, dim) . Gán giá trị này cho một biến mới "v" . Here, input là tensor đầu vào và dim là thứ nguyên mà các phần tử được sắp xếp. Để sắp xếp các phần tử theo hàng, dim được đặt là 1 và để sắp xếp các phần tử theo cột, dim được đặt là 0.

  • Tensor với các giá trị được sắp xếp có thể được truy cập dưới dạng v [0] và hàng chục chỉ số của các phần tử được sắp xếp là v [1] .

  • In Tensor với các giá trị đã được sắp xếp và tensor với các chỉ số của các giá trị đã được sắp xếp.

Ví dụ 1

Chương trình Python sau đây chỉ ra cách sắp xếp các phần tử của 1Dtensor.

# Python program to sort elements of a tensor
# import necessary library
import torch

# Create a tensor
T = torch.Tensor([2.334,4.433,-4.33,-0.433,5, 4.443])
print("Original Tensor:\n", T)

# sort the tensor T
# it sorts the tensor in ascending order
v = torch.sort(T)

# print(v)
# print tensor of sorted value
print("Tensor with sorted value:\n", v[0])

# print indices of sorted value
print("Indices of sorted value:\n", v[1])

Đầu ra

Original Tensor:
   tensor([ 2.3340, 4.4330, -4.3300, -0.4330, 5.0000, 4.4430])
Tensor with sorted value:
   tensor([-4.3300, -0.4330, 2.3340, 4.4330, 4.4430, 5.0000])
Indices of sorted value:
   tensor([2, 3, 0, 1, 5, 4])

Ví dụ 2

Chương trình Python sau đây chỉ ra cách sắp xếp các phần tử của một 2Dtensor.

# Python program to sort elements of a 2-D tensor
# import the library
import torch

# Create a 2-D tensor
T = torch.Tensor([[2,3,-32],
                  [43,4,-53],
                  [4,37,-4],
                  [3,-75,34]])
print("Original Tensor:\n", T)

# sort tensor T
# it sorts the tensor in ascending order
v = torch.sort(T)

# print(v)
# print tensor of sorted value
print("Tensor with sorted value:\n", v[0])

# print indices of sorted value
print("Indices of sorted value:\n", v[1])
print("Sort tensor Column-wise")
v = torch.sort(T, 0)

# print(v)
# print tensor of sorted value
print("Tensor with sorted value:\n", v[0])

# print indices of sorted value
print("Indices of sorted value:\n", v[1])
print("Sort tensor Row-wise")
v = torch.sort(T, 1)

# print(v)
# print tensor of sorted value
print("Tensor with sorted value:\n", v[0])

# print indices of sorted value
print("Indices of sorted value:\n", v[1])

Đầu ra

Original Tensor:
tensor([[ 2., 3., -32.],
        [ 43., 4., -53.],
        [ 4., 37., -4.],
        [ 3., -75., 34.]])
Tensor with sorted value:
tensor([[-32., 2., 3.],
         [-53., 4., 43.],
         [ -4., 4., 37.],
         [-75., 3., 34.]])
Indices of sorted value:
tensor([[2, 0, 1],
         [2, 1, 0],
         [2, 0, 1],
         [1, 0, 2]])
Sort tensor Column-wise
Tensor with sorted value:
tensor([[ 2., -75., -53.],
         [ 3., 3., -32.],
         [ 4., 4., -4.],
         [ 43., 37., 34.]])
Indices of sorted value:
tensor([[0, 3, 1],
         [3, 0, 0],
         [2, 1, 2],
         [1, 2, 3]])
Sort tensor Row-wise
Tensor with sorted value:
tensor([[-32., 2., 3.],
         [-53., 4., 43.],
         [ -4., 4., 37.],
         [-75., 3., 34.]])
Indices of sorted value:
tensor([[2, 0, 1],
         [2, 1, 0],
         [2, 0, 1],
         [1, 0, 2]])