torch中的sort用法|torch.sort

今天在学习代码时,发现有些深度学习的项目中使用到torch.sort()函数,在此记录一下,方便自己的查阅.

torch.sort()

官网给出了非常详细的介绍,但是为了更进一步掌握这一用法,在此记录一下。
具体官网链接如下:https://pytorch.org/docs/stable/generated/torch.sort.html#torch.sort

首先看到sort大家都清楚的知道是排序的功能,但是和python的sorted函数用法还不一样,torch中的排序封装的性能更加实用,不仅可以返回排序后的值,而且还可以返回排序后的下表索引。
一般我们的输入有三项

torch.sort(input, dim=-1, descending=False, stable=False, *, out=None)->(Tensor, LongTensor)

input:形式上与 numpy.narray 类似,可以是一个列表形式或者是一个数组形式。
dim:维度,对于二维数据:dim=0 按列排序,dim=1 按行排序,默认 dim=1。以此类推。
descending:降序,descending=True 从大到小排序,descending=False 从小到大排序,默认 descending=Flase

该函数返回的是一个元组,分别是一个排序后的张量,一个是下表索引的张量。
具体的代码如下,方便理解

# 可以使用jupyter编辑器直接复制运行结果
# 随机生成一个3行4列的数组x  这里是随机生成的数组,每次都不相同,不用纠结里面的数字,如何想看到相同的效果,可以使用固定数组
import torch
x = torch.randn(3,4)
# 初始值,始终不变
print(x)
tensor([[-0.9950, -0.6175, -0.1253,  1.3536],[ 0.1208, -0.4237, -1.1313,  0.9022],[-1.1995, -0.0699, -0.4396,  0.8043]])
sorted, indices = torch.sort(x)  #按行从小到大排序
print(sorted)
tensor([[-0.9950, -0.6175, -0.1253,  1.3536],[-1.1313, -0.4237,  0.1208,  0.9022],[-1.1995, -0.4396, -0.0699,  0.8043]])
print(indices)
tensor([[0, 1, 2, 3],[2, 1, 0, 3],[0, 2, 1, 3]])
sorted, indices = torch.sort(x, descending=True)  #按行从大到小排序 (即反序)
print(sorted)
tensor([[ 1.3536, -0.1253, -0.6175, -0.9950],[ 0.9022,  0.1208, -0.4237, -1.1313],[ 0.8043, -0.0699, -0.4396, -1.1995]])
print(indices)
tensor([[3, 2, 1, 0],[3, 0, 1, 2],[3, 1, 2, 0]])
sorted, indices = torch.sort(x, dim=0)  #按列从小到大排序
print(sorted)
tensor([[-1.1995, -0.6175, -1.1313,  0.8043],[-0.9950, -0.4237, -0.4396,  0.9022],[ 0.1208, -0.0699, -0.1253,  1.3536]])
print(indices)
tensor([[2, 0, 1, 2],[0, 1, 2, 1],[1, 2, 0, 0]])
sorted, indices = torch.sort(x, dim=0, descending=True)  #按列从大到小排序
print(sorted)
tensor([[ 0.1208, -0.0699, -0.1253,  1.3536],[-0.9950, -0.4237, -0.4396,  0.9022],[-1.1995, -0.6175, -1.1313,  0.8043]])
print(indices)
tensor([[1, 2, 0, 0],[0, 1, 2, 1],[2, 0, 1, 2]])

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/719795.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

华为认证HCIP报名条件有哪些?考试要求介绍

华为HCIP认证是很多网络工程师的考证首选,尤其对于刚入行不久的网络工程师们来说,这个证书无论是从难度出发还是从含金量出发,都是值得一考的。 那么如果想报名华为HCIP认证有哪些条件以及考试要求,华为HCIP的报名需不需要通过机…

镜头畸变模型及去畸变的原理

1. OpenCV去畸变undistortPoints原理解析 Opencv中镜头畸变包含了径向畸变和切向畸变,本章节主要阐述镜头畸变模型以及去畸变的原理。 1.1 镜头畸变模型 参考opencv文档 https://docs.opencv.org/3.1.0/d4/d94/tutorial_camera_calibration.html,opencv…

基于SpringBoot+MYSQL的医护人员排班系统

基于springboot的医护人员排班系统录像 1、 前言介绍 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了医护人员排班系统的开发全过程。通过分析医护人员排班系统管理的不足,创建了一个计算机管理医护人员…

LSA头部结构简述

LSA(Link State Advertisement)是一种用于路由协议头部结构,用于在网络中传递路由信息。 LSA头部结构包含以下几个字段: 1、LSA类型(LSA Type):指示LSA的类型,不同类型的LSA用于传递…

Rabbitmq消息丢失-消费者消息丢失(二)

说明:消费端在处理消息的过程中出现异常,例如:业务逻辑异常,或者消费者被停机,或者网络断开连接等,以上等情况使消息没有得到正确恰当的处理,也会使消息丢失。 分析:分析就是说明中…

Composer基础使用 SDK包初始化

Composer 的工作原理 我们在使用 Composer 之前我们得了解一下它的实现原理,它主要由三个部分组成:命令行工具、包仓库、代码库: Packagist 它是官方仓库,也就是我们平常说的 Composer 源,它的作用是存储这些包的信息…

参数引入和全局变量引入实现-目标和

LCR 102. 目标和 - 力扣(LeetCode) 分析题意,画出决策树,其他的思路都跟前面讲过的类似: 全局变量引入实现: 全局变量的引入,需要手动处理回溯; class Solution {int ret; //…

从0到1全流程使用 segment-anything

从0到1全流程使用 segment-anything 一、安装 anaconda 一、下载 anaconda 二、以管理员身份运行安装 1、勾选 Just Me 2、统一安装路径(后续 python 等包也安装至此目录) 3、勾选 add to path 然后安装即可。 三、修改 Anaconda 默认路径及默认缓存路径 Anaconda 默认下…

K8S集群误删master节点,master节点恢复完美解决

问题描述: 在单节点的master节点k8s集群中不小心误删了master节点导致集群不可用。 多节点应的恢复方式同样也适用。 解决方案: 两条命令解决master节点恢复,而不是去重装k8s集群。 执行下面命令,生成节点的join命令 kubeadm t…

蓝桥杯 9241.飞机降落

这道题本来作者以为是可以用一些小技巧进行暴力解法的&#xff0c;但是后来试了一下&#xff0c;不能过去全部数据。 下面是对半个的题解&#xff1a; #include<iostream> #include<stdio.h> #include<cstring> #include<cstdlib> #include<cmath…

掌握 Python: 每个开发人员都应该知道的6个秘密技巧

无论你是一名经验丰富的开发者还是刚踏入编程世界的新手&#xff0c;Python 很可能已经引起了你的兴趣。 它功能强大、灵活多变&#xff0c;而且非常用户友好&#xff01;但是&#xff0c;让我们更进一步吧! 在这篇博客中&#xff0c;我将揭示一些隐藏的 Python 技巧&#xff0…

#QT(DEMO)

1.IDE&#xff1a;QTCreator 2.实验&#xff1a;打印"hello wolrd" 3.记录 &#xff08;1&#xff09;创建一个新工程&#xff1a; 新建好一个工程存放文件夹&#xff08;路径不能有中文&#xff09;,然后按下图配置 &#xff08;2&#xff09;点击widgets.ui拖入以…

AIGC时代,程序员副业的必修课【提供免费指导,手把手实践】

给自己的新课做个宣传&#xff0c;限时6折&#xff0c;感兴趣的可以听一听&#xff0c;完全干货。提供课程购买订单&#xff0c;可免费获得21天从0到1全程上站指导。 《AIGC时代&#xff0c;程序员副业的必修课》 AIGC时代的到来&#xff0c;又是一个程序员的副业赚钱的好机会…

真香定律!我用这种模式重构了第三方登录

分享是最有效的学习方式。 博客&#xff1a;https://blog.ktdaddy.com/ 老猫的设计模式专栏已经偷偷发车了。不甘愿做crud boy&#xff1f;看了好几遍的设计模式还记不住&#xff1f;那就不要刻意记了&#xff0c;跟上老猫的步伐&#xff0c;在一个个有趣的职场故事中领悟设计模…

improve-echarts饼图自适应(分辨率放大缩小)

1.echarts 本身存在放大缩小图表不变的情况&#xff0c;要求要图表适应分辨率&#xff0c;根据分辨率放大缩小来进行适应与响应式。 饼图 <!-- 饼状 --><div class"leftrcyle"><div class"ciclye"><div id"cicly" class&q…

2023人机交互期末复习

考试题型及分值分布 1、选择题&#xff08;10题、20分&#xff09; 2、填空题&#xff08;10题、20分&#xff09; 3、判断题&#xff08;可选、5题、10分&#xff09; 4、解答题&#xff08;5~6题、30分&#xff09; 5、分析计算题&#xff08;1~2题、20分&#xff09; 注意&…

PHP+MySQL实现后台管理系统增删改查之够用就好

说明 最近要给博客弄个后台&#xff0c;不想搞得很复杂&#xff0c;有基本的增删改查就够了&#xff0c;到网上找了一圈发现这个不错&#xff0c;很实用&#xff0c;希望可以帮到大家&#xff0c;需要的朋友评论区留下邮箱&#xff0c;我安排发送。 演示效果 项目介绍 本项目…

Jetty使用入门

Jetty使用入门 社区当前推荐开发者使用Jetty 12.X版本。 依据End of Community Support for Jetty 9.x - June 2022&#xff0c;社区对Jetty 9.x的支持&#xff0c;已在2022年6月1日停止。 依据End of Community Support for Jetty 10 / Jetty 11 - January 2024&#xff0c;…

带使能控制的锂电池充放电解决方案

一、产品概述 TP4594R 是一款集成线性充电管理、同步升压转换、电池电量指示和多种保护功能的单芯片电源管理 SOC&#xff0c;为锂电池的充放电提供完整的单芯片电源解决方案。 TP4594R 内部集成了线性充电管理模块、同步升压放电管理模块、电量检测与 LED 指示模块、保护模块…

关于python函数参数传递

参数传递 在 python 中&#xff0c;类型属于对象&#xff0c;对象有不同类型的区分&#xff0c;变量是没有类型的&#xff1a; 在下面的代码示例重&#xff0c;[1,2,3] 是 List 类型&#xff0c;“qayrup” 是 String 类型&#xff0c;而变量 a 是没有类型&#xff0c;它仅仅…