Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

จะจัดเรียงองค์ประกอบของเทนเซอร์ใน PyTorch ได้อย่างไร?


ในการจัดเรียงองค์ประกอบของเทนเซอร์ใน PyTorch เราสามารถใช้เมธอด torch.sort() เมธอดนี้ส่งคืนเทนเซอร์สองตัว เมตริกซ์แรกคือเมตริกซ์ขององค์ประกอบในเทนเซอร์เดิม เราสามารถคำนวณเทนเซอร์ 2 มิติ ทั้งแบบแถวและแบบคอลัมน์

ขั้นตอน

  • นำเข้าไลบรารีที่จำเป็น ในตัวอย่าง Python ทั้งหมดต่อไปนี้ ไลบรารี Python ที่จำเป็นคือ ไฟฉาย . ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้งแล้ว

  • สร้างเทนเซอร์ PyTorch แล้วพิมพ์ออกมา

  • ในการจัดเรียงองค์ประกอบของเทนเซอร์ที่สร้างไว้ข้างต้น ให้คำนวณ torch.sort(input, dim) . กำหนดค่านี้ให้กับตัวแปรใหม่ "v" .ที่นี่ ป้อนข้อมูล คือเทนเซอร์อินพุตและ สลัว คือมิติที่องค์ประกอบต่างๆ ถูกจัดเรียง ในการจัดเรียงองค์ประกอบตามแถว การหรี่แสงถูกกำหนดเป็น 1 และเพื่อจัดเรียงองค์ประกอบตามคอลัมน์ หรี่ ถูกกำหนดเป็น 0

  • เทนเซอร์ที่มีค่าที่เรียงลำดับสามารถเข้าถึงได้เป็น v[0] และเทนเซอร์ของดัชนีขององค์ประกอบที่เรียงลำดับเป็น v[1] .

  • พิมพ์เทนเซอร์ด้วยค่าที่จัดเรียง และเทนเซอร์พร้อมดัชนีของค่าที่จัดเรียง

ตัวอย่างที่ 1

โปรแกรม Python ต่อไปนี้แสดงวิธีการจัดเรียงองค์ประกอบของ 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])

ผลลัพธ์

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])

ตัวอย่างที่ 2

โปรแกรม Python ต่อไปนี้แสดงวิธีการจัดเรียงองค์ประกอบของ 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])

ผลลัพธ์

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]])