如何在PyTorch中对张量进行排序?

如何在PyTorch中对张量进行排序?

为了在PyTorch中对张量进行排序,我们可以使用torch.sort()方法。此方法返回两个张量。第一个张量是具有元素排序值的张量,第二个张量是原始张量中元素的索引张量。我们可以计算二维张量,按行和按列进行排序。

步骤

  • 导入所需的库。在以下所有Python示例中,所需的Python库是 torch 。确保您已经安装了它。

  • 创建PyTorch张量并打印它。

  • 要对上述创建的张量的元素进行排序,请计算 torch.sort(input,dim) 。将此值分配给新变量 "v" 。在此处, input 是输入张量,而 dim 是元素排序的维度。要按行排序元素,将dim设置为1。要按列排序元素,将 dim 设置为0。

  • 可以访问具有排序值的张量作为 v [0] 的张量,并且已排序元素的索引的张量为 v [1]

  • 打印具有排序值的张量和已排序值的张量的索引的张量。

示例1

以下Python程序演示了如何对1D张量的元素进行排序。

# Python程序对张量元素进行排序
#导入必要的库
import torch

#创建张量
T = torch.Tensor([2.334,4.433,-4.33,-0.433,5, 4.443])
print("原始张量:\n", T)

#排序张量T
#它按升序排序张量
v = torch.sort(T)

# print(v)
# 打印有序值的张量
print("具有排序值的张量:\n", v[0])

# 打印已排序值的张量的索引
print("排序值的索引:\n", v[1])

输出

原始张量:
 张量[2.3340,4.4330,-4.3300,-0.4330,5.0000,4.4430]
具有排序值的张量:
 张量[-4.3300,-0.4330,2.3340,4.4330,4.4430,5.0000]
排序值的索引:
 张量[2,3,0,1,5,4]

示例2

以下Python程序演示了如何对2D张量的元素进行排序。

# Python程序对2-D张量元素进行排序
#导入库
import torch

#创建2-D张量
T = torch.Tensor([[2,3,-32],
                  [43,4,-53],
                  [4,37,-4],
                  [3,-75,34]])
print("原始张量:\n", T)

#排序张量T
#它按升序排序张量
v = torch.sort(T)

# 打印有序值的张量
print("具有排序值的张量:\n", v[0])

# 打印已排序值的张量的索引
print("排序值的索引:\n", v[1])
print("以列排序张量")
v = torch.sort(T, 0)

# 打印有序值的张量
print("具有排序值的张量:\n", v[0])

# 打印已排序值的张量的索引print("排序值的索引:\n", v[1])
print("以行排序张量")
v = torch.sort(T, 1)

#打印有序值的张量
print("具有排序值的张量:\n", v[0])

#打印已排序值的张量的索引
print("排序值的索引:\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]])

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程