pytorch比较操作
文章目录
- 常用的比较操作
- 1.torch.allclose()
- 2.torch.argsort()
- 3.torch.eq()
- 4.torch.equal()
- 5.torch.greater_equal()
- 6.torch.gt()
- 7.torch.isclose()
- 8.torch.isfinite()
- 9.torch.isif()
- 10.torch.isposinf()
- 11.torch.isneginf()
- 12.torch.isnan()
- 13.torch.kthvalue()
- 14.torch.less_equal()
- 15.torch.maximum()
- 16.torch.fmax()
- 17.torch.ne()
- 18.torch.sort()
- 19.torch.topk()
常用的比较操作

1.torch.allclose()
torch.allclose() 是 PyTorch 中用于比较两个张量是否在给定的容差范围内近似相等的函数。它可以用于比较浮点数张量之间的相等性。
torch.allclose(input, other, rtol=1e-05, atol=1e-08, equal_nan=False)
"""
input:第一个输入张量。
other:第二个输入张量。
rtol:相对容差(relative tolerance),默认为 1e-05。
atol:绝对容差(absolute tolerance),默认为 1e-08。
equal_nan:一个布尔值,指示是否将 NaN 视为相等,默认为 False。
"""
import torch# 比较两个张量是否近似相等
x = torch.tensor([1.0, 2.0, 3.0])
y = torch.tensor([1.0001, 2.0002, 3.0003])
is_close = torch.allclose(x, y, rtol=1e-03, atol=1e-05)print(is_close)# True
2.torch.argsort()
torch.argsort() 是 PyTorch 中用于对张量进行排序并返回排序后的索引的函数。它返回一个新的张量,其中每个元素表示原始张量中对应位置的元素在排序后的顺序中的索引值。
torch.argsort(input, dim=-1, descending=False, *, out=None)
"""
input:输入张量。
dim:指定排序的维度,默认为 -1,表示最后一个维度。
descending:一个布尔值,指示是否按降序排序,默认为 False。
out:可选参数,用于指定输出张量的位置。
"""
import torch# 对张量进行排序并返回索引
x = torch.tensor([3, 1, 4, 2])
sorted_indices = torch.argsort(x)print(sorted_indices)
# tensor([1, 3, 0, 2])
3.torch.eq()
torch.eq() 是 PyTorch 中用于执行元素级别相等性比较的函数。它比较两个张量的对应元素,并返回一个新的布尔张量,其中元素为 True 表示对应位置的元素相等,元素为 False 表示对应位置的元素不相等。
torch.eq(input, other, out=None)
"""
input:第一个输入张量。
other:第二个输入张量。
out:可选参数,用于指定输出张量的位置。
"""
import torch# 执行元素级别的相等性比较
x = torch.tensor([1, 2, 3])
y = torch.tensor([1, 2, 4])
result = torch.eq(x, y)print(result)# tensor([ True, True, False])
4.torch.equal()
torch.equal() 是 PyTorch 中用于检查两个张量是否在元素级别上完全相等的函数。它返回一个布尔值,指示两个张量是否具有相同的形状和相同的元素值。
torch.equal(input, other)
"""
input:第一个输入张量。
other:第二个输入张量。
"""
import torch# 检查两个张量是否完全相等
x = torch.tensor([1, 2, 3])
y = torch.tensor([1, 2, 3])
is_equal = torch.equal(x, y)print(is_equal)# True
5.torch.greater_equal()
torch.greater_equal() 是 PyTorch 中用于执行元素级别的大于等于比较的函数。它比较两个张量的对应元素,并返回一个新的布尔张量,其中元素为 True 表示对应位置的元素大于或等于,元素为 False 表示对应位置的元素小于。
torch.greater_equal(input, other, out=None)
"""
input:第一个输入张量。
other:第二个输入张量。
out:可选参数,用于指定输出张量的位置。
"""
import torch# 执行元素级别的大于等于比较
x = torch.tensor([1, 2, 3])
y = torch.tensor([2, 2, 2])
result = torch.greater_equal(x, y)print(result)
tensor([False, True, True])
6.torch.gt()
torch.gt() 是 PyTorch 中用于执行元素级别的大于比较的函数。它比较两个张量的对应元素,并返回一个新的布尔张量,其中元素为 True 表示对应位置的元素大于,元素为 False 表示对应位置的元素小于或等于。
torch.gt(input, other, out=None)
"""
input:第一个输入张量。
other:第二个输入张量。
out:可选参数,用于指定输出张量的位置。
"""
import torch# 执行元素级别的大于比较
x = torch.tensor([1, 2, 3])
y = torch.tensor([2, 2, 2])
result = torch.gt(x, y)print(result)#tensor([False, False, True])
7.torch.isclose()
torch.isclose() 是 PyTorch 中用于比较两个张量是否在给定的容差范围内近似相等的函数。它可以用于比较浮点数张量之间的相等性。
torch.isclose(input, other, rtol=1e-05, atol=1e-08, equal_nan=False)
"""
input:第一个输入张量。
other:第二个输入张量。
rtol:相对容差(relative tolerance),默认为 1e-05。
atol:绝对容差(absolute tolerance),默认为 1e-08。
equal_nan:一个布尔值,指示是否将 NaN 视为相等,默认为 False。
"""
import torch# 比较两个张量是否近似相等
x = torch.tensor([1.0, 2.0, 3.0])
y = torch.tensor([1.0001, 2.0002, 3.0003])
is_close = torch.isclose(x, y, rtol=1e-03, atol=1e-05)print(is_close)
tensor([True, True, True])
8.torch.isfinite()
torch.isfinite() 是 PyTorch 中用于检查张量中的元素是否为有限数(finite number)的函数。它返回一个新的布尔张量,其中每个元素表示对应位置的元素是否为有限数。
torch.isfinite(input, out=None)
"""
input:输入张量。
out:可选参数,用于指定输出张量的位置。
"""
import torch# 检查张量中的元素是否为有限数
x = torch.tensor([1.0, float('inf'), float('-inf'), float('nan')])
is_finite = torch.isfinite(x)print(is_finite)# tensor([ True, False, False, False])
9.torch.isif()
torch.isinf() 是 PyTorch 中用于检查张量中的元素是否为无穷大的函数。它返回一个新的布尔张量,其中每个元素表示对应位置的元素是否为无穷大。
torch.isinf(input, out=None)
"""
input:输入张量。
out:可选参数,用于指定输出张量的位置。
"""
import torch
# 检查张量中的元素是否为无穷大
x = torch.tensor([1.0, float('inf'), float('-inf'), float('nan')])
is_inf = torch.isinf(x)print(is_inf)
tensor([False, True, True, False])
10.torch.isposinf()
torch.isposinf() 是 PyTorch 中用于检查张量中的元素是否为正无穷大的函数。它返回一个新的布尔张量,其中每个元素表示对应位置的元素是否为正无穷大。
torch.isposinf(input, out=None)
"""
input:输入张量。
out:可选参数,用于指定输出张量的位置。
"""
import torch# 检查张量中的元素是否为正无穷大
x = torch.tensor([1.0, float('inf'), float('-inf'), float('nan')])
is_posinf = torch.isposinf(x)print(is_posinf)# tensor([False, True, False, False])
11.torch.isneginf()
torch.isneginf() 是 PyTorch 中用于检查张量中的元素是否为负无穷大的函数。它返回一个新的布尔张量,其中每个元素表示对应位置的元素是否为负无穷大。
torch.isneginf(input, out=None)
"""
input:输入张量。
out:可选参数,用于指定输出张量的位置。
"""
import torch# 检查张量中的元素是否为负无穷大
x = torch.tensor([1.0, float('inf'), float('-inf'), float('nan')])
is_neginf = torch.isneginf(x)print(is_neginf)# tensor([False, False, True, False])
12.torch.isnan()
torch.isnan() 是 PyTorch 中用于检查张量中的元素是否为 NaN(Not a Number)的函数。它返回一个新的布尔张量,其中每个元素表示对应位置的元素是否为 NaN。
torch.isnan(input, out=None)
"""
input:输入张量。
out:可选参数,用于指定输出张量的位置。
"""
import torch# 检查张量中的元素是否为 NaN
x = torch.tensor([1.0, float('inf'), float('-inf'), float('nan')])
is_nan = torch.isnan(x)print(is_nan)# tensor([False, False, False, True])
13.torch.kthvalue()
torch.kthvalue() 函数用于找出张量中的第 k 小值,而 torch.topk() 函数用于找出张量中的前 k 个最大值(或最小值)及其对应的索引。
torch.topk(input, k, dim=None, largest=True, sorted=True, out=None)
"""
input:输入张量。
k:要找到的最大值(或最小值)的数量。
dim:可选参数,指定在哪个维度上进行查找。如果未指定,则默认在最后一个维度上查找。
largest:可选参数,指定是找到最大值还是最小值。默认为 True,表示找到最大值。
sorted:可选参数,指定结果张量是否按降序排列。默认为 True。
out:可选参数,用于指定输出张量的位置。
"""
import torch# 找出张量中的前 3 个最大值及其索引
x = torch.tensor([1, 3, 2, 4, 6, 5])
values, indices = torch.topk(x, k=3)print(values)#tensor([6, 5, 4])
print(indices)#tensor([4, 5, 3])
14.torch.less_equal()
torch.less_equal() 是 PyTorch 中用于执行逐元素的小于等于(<=)比较的函数。它比较两个张量的对应元素,并返回一个新的布尔张量,其中每个元素表示对应位置的元素是否满足小于等于的条件。
torch.less_equal(input, other, out=None)
"""
input:输入张量。
other:用于比较的另一个张量或标量值。
out:可选参数,用于指定输出张量的位置。
"""
import torch# 执行逐元素的小于等于比较
x = torch.tensor([1, 2, 3])
y = torch.tensor([2, 2, 2])
result = torch.less_equal(x, y)print(result)# tensor([ True, True, False])
15.torch.maximum()
torch.maximum() 是 PyTorch 中用于执行逐元素的最大值比较的函数。它比较两个张量的对应元素,并返回一个新的张量,其中每个元素是对应位置的最大值。
torch.maximum(input, other, out=None)
"""
input:输入张量。
other:用于比较的另一个张量或标量值。
out:可选参数,用于指定输出张量的位置。
"""
import torch# 执行逐元素的最大值比较
x = torch.tensor([1, 2, 3])
y = torch.tensor([2, 1, 4])
result = torch.maximum(x, y)print(result)# tensor([2, 2, 4])
16.torch.fmax()
torch.fmax() 是 PyTorch 中用于执行逐元素的最大值比较的函数,专门用于处理浮点数类型。它比较两个张量的对应元素,并返回一个新的张量,其中每个元素是对应位置的最大值。与 torch.maximum() 不同,torch.fmax() 函数在处理浮点数时会保留 NaN 值。如果其中一个张量的元素为 NaN,那么在对应位置上将返回另一个张量的值。
torch.fmax(input, other, out=None)
"""
input:输入张量。
other:用于比较的另一个张量或标量值。
out:可选参数,用于指定输出张量的位置。
"""
import torch# 执行逐元素的最大值比较
x = torch.tensor([1.0, 2.0, float('nan')])
y = torch.tensor([2.0, 1.0, 3.0])
result = torch.fmax(x, y)print(result)# tensor([2., 2., 3.])
17.torch.ne()
torch.ne() 是 PyTorch 中用于执行逐元素的不等于(!=)比较的函数。它比较两个张量的对应元素,并返回一个新的布尔张量,其中每个元素表示对应位置的元素是否不相等。
torch.ne(input, other, out=None)
"""
input:输入张量。
other:用于比较的另一个张量或标量值。
out:可选参数,用于指定输出张量的位置。
"""
import torch# 执行逐元素的不等于比较
x = torch.tensor([1, 2, 3])
y = torch.tensor([2, 2, 2])
result = torch.ne(x, y)print(result)# tensor([ True, False, True])
18.torch.sort()
torch.sort() 是 PyTorch 中用于对张量进行排序的函数。它返回一个元组,包含排序后的值张量和对应的索引张量。
torch.sort(input, dim=None, descending=False, out=None)
"""
input:输入张量。
dim:可选参数,指定在哪个维度上进行排序。如果未指定,则默认在最后一个维度上进行排序。
descending:可选参数,指定是否按降序排列。默认为 False,表示按升序排列。
out:可选参数,用于指定输出张量的位置。torch.sort() 函数返回一个元组 (sorted_values, sorted_indices),其中:
sorted_values 是排序后的值张量。
sorted_indices 是排序后的值在原始张量中对应的索引张量。
"""
import torch# 对张量进行排序
x = torch.tensor([3, 1, 2])
sorted_values, sorted_indices = torch.sort(x)print(sorted_values)# tensor([1, 2, 3])
print(sorted_indices)# tensor([1, 2, 0])
19.torch.topk()
torch.topk() 是 PyTorch 中用于获取张量中最大值或最小值的 k 个元素的函数。它返回一个元组,包含排序后的值张量和对应的索引张量。
torch.topk(input, k, dim=None, largest=True, sorted=True, out=None)
"""
input:输入张量。
k:要获取的最大或最小值的个数。
dim:可选参数,指定在哪个维度上进行操作。如果未指定,则默认在最后一个维度上进行操作。
largest:可选参数,指定是否获取最大值。默认为 True,表示获取最大值。如果设置为 False,则获取最小值。
sorted:可选参数,指定是否返回排序结果。默认为 True,表示返回排序结果。如果设置为 False,则返回未排序的结果。
out:可选参数,用于指定输出张量的位置。
"""
import torch# 获取张量中的最大值和对应的索引
x = torch.tensor([3, 1, 2, 5, 4])
top_values, top_indices = torch.topk(x, k=3)print(top_values)#tensor([5, 4, 3])
print(top_indices)# tensor([3, 4, 0])
相关文章:
pytorch比较操作
文章目录 常用的比较操作1.torch.allclose()2.torch.argsort()3.torch.eq()4.torch.equal()5.torch.greater_equal()6.torch.gt()7.torch.isclose()8.torch.isfinite()9.torch.isif()10.torch.isposinf()11.torch.isneginf()12.torch.isnan()13.torch.kthvalue()14.torch.less_…...
2024年4月—马克思主义基本原理概论真题及答案解析(上海自考)
目录 1.选择题 2.简答题 3.论述题 1.选择题 2.简答题...
「Element-UI表头添加带Icon的提示信息」
一、封装全局组件 🍓 注意:可以直接复制该文件 <!-- // 写一个PromptMessage的组件,并全局注册 --> <template><div class"tooltip"><el-tooltip effect"dark" placement"right">&l…...
单细胞 10X 和seurat对象学习
单细胞seurat数据的基础知识 rm(list ls()) library(Seurat) #注意这个报错 #Warning: Feature names cannot have underscores (_), replacing with dashes (-) folderslist.files(./,pattern[123]$) folders scList lapply(folders,function(folder){ CreateSeuratObject(…...
Flutter 中的 Flex 小部件:全面指南
Flutter 中的 Flex 小部件:全面指南 Flutter 的布局系统非常灵活,允许开发者以声明式的方式构建复杂的用户界面。Flex 是 Flutter 中用于创建灵活布局的核心小部件之一,它提供了水平和垂直的线性布局能力。本文将详细介绍 Flex 小部件的使用…...
统计每个活动的用户访问量,且每个用户仅统计一次
场景:统计每个活动的用户访问量,且每个用户仅统计一次。 首先活动表是已经存在了的,一般情况下,我们都会在创建一个用户访问表,其中唯一主键是用户ID活动ID作为唯一主键 create table user_visist_activity_record(i…...
基于SpringBoot的本科生考研率统计系统
基于SpringBoot的本科生考研率统计系统 一、开发技术二、功能模块三、代码结构四、数据库设计五、运行截图六、源码获取 一、开发技术 技术:SpringBoot、MyBatis-Plus、Redis、MySQL、Thymeleaf、Html、Vue、Element-ui。 框架:基于开源框架easy-admin开…...
JMeter正则表达式提取器和JSON提取器基础用法,小白必会!
最近在利用JMeter做接口自动化测试,正则表达式提取器和JSON提取器用的还挺多,想着分享下,希望对大家的接口自动化测试项目有所启发。 在 JMeter 中,正则表达式和 JSON 提取器都是用于从响应数据中提取所需内容,但它们…...
5-26作业
网络聊天室 服务器: 1 #include <myhead.h>2 int main(int argc, const char *argv[])3 {4 if(argc!3)5 {6 printf("请输入IP和端口号\n");7 return -1;8 }9 int sfd socket(AF_INET, SOCK_DGRAM, 0);10 if(…...
2024.05.28学习记录
1. 小林coding 计网复习 2.代码随想录刷题. 图论.和复习数组.链表 3.rosebush完成select组件...
撤销最近一次的提交,使用git revert 和 git reset的区别
文章目录 工作区 暂存区 本地仓库 远程仓库需求:已推送到远程仓库,想要撤销操作git revert (添加新的提交来“反做”之前的更改,云端会残留上次的提交记录)git reset(相当于覆盖上次的提交)1.--…...
MySQL详细安装、配置过程,多图,详解
本文适合centos7环境下安装mysql,在安装和卸载过程中,都在root用户下完成。文章目录 清理环境获取mysql官方yum源安装mysql yum源安装mysql服务安装报错解决办法验证是否安装完成启动mysql服务登录服务方法一:方法二:方法三&#…...
音视频学习规划
文章目录 概述闲聊点 小结 概述 最近在学习音视频,觉得还是要先写个提纲,给自己制定下学习路线及目标。先写下我的个人流程及思路。 ffmpeg的命令ffmpeg api播放器流媒体RTMP,HLS 闲聊点 先说下学习命令行吧,学习命令行是为了…...
代码随想录算法训练营第21天|● 530.二叉搜索树的最小绝对差 ● 501.二叉搜索树中的众数 ● 236. 二叉树的最近公共祖先
二叉搜索树的最小绝对差 题目连接 https://leetcode.cn/problems/minimum-absolute-difference-in-bst/ 思路: 利用二叉搜索树的中序遍历的特性,将二叉树转成有序数组,进而求任意两个数的最小绝对差。 代码 /*** Definition for a bina…...
K8S中Prometheus+Grafana监控
1.介绍 phometheus:当前一套非常流行的开源监控和报警系统。 运行原理:通过HTTP协议周期性抓取被监控组件的状态。输出被监控组件信息的HTTP接口称为exporter。 常用组件大部分都有exporter可以直接使用,比如haproxy,nginx,Mysql,Linux系统信…...
题解:CF1968F(Equal XOR Segments)
题解:CF1968F(Equal XOR Segments) 题目翻译:定义一个序列是好,当且仅当可以将其分成大于 1 1 1 份,使得每个部分的异或和相等。现在给定一个长度为 n n n 的序列 a a a,以及 q q q 次查询…...
Python操作MySQL实战
文章导读 本文用于巩固Pymysql操作MySQL与MySQL操作的知识点,实现一个简易的音乐播放器,拟实现的功能包括:用户登录,窗口显示,加载本地音乐,加入和删除播放列表,播放音乐。 点击此处获取参考源…...
【Linux系统】进程间通信
本篇博客整理了进程间通信的方式管道、 system V IPC的原理,结合大量的系统调用接口,和代码示例,旨在让读者透过进程间通信去体会操作系统的设计思想和管理手段。 目录 一、进程间通信 二、管道 1.匿名管道 1.1-通信原理 1.2-系统调用 …...
北大国际医院腹膜后纤维化课题组 多学科协作开辟治疗新径
腹膜后纤维化(Retroperitoneal Fibrosis,简称RPF)是一种罕见的自身免疫性疾病,其核心特征是纤维组织的异常增生与硬化。这种疾病主要影响肾脏下方的腹主动脉和髂动脉区域,增生的纤维组织会逐渐压迫周围的输尿管和下腔静脉,从而导致一系列并发症,包括主动脉瘤、肾功能衰竭等,甚至…...
面试数据库八股文十问十答第七期
面试数据库八股文十问十答第七期 作者:程序员小白条,个人博客 相信看了本文后,对你的面试是有一定帮助的!关注专栏后就能收到持续更新! ⭐点赞⭐收藏⭐不迷路!⭐ 1)索引是越多越好吗ÿ…...
PrivLLM 协变混淆:隐私保护的 LLM 推理高效实现
用户接入云上大模型(LLM)时,通常面临端-云数据交互如提示词上传等隐私泄露风险。常规脱敏和加密手段难以同时保障数据安全隐私和推理高效准确,陷入“安全”与“智能”不可兼得的困局。为此,字节跳动安全研究团队提出了…...
无需模拟器!Windows运行安卓应用的革命性方案——APK-Installer轻量级安装工具全解析
无需模拟器!Windows运行安卓应用的革命性方案——APK-Installer轻量级安装工具全解析 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 在数字化办公与娱乐融…...
7个关键步骤:用Meshroom实现高精度三维重建的完整指南
7个关键步骤:用Meshroom实现高精度三维重建的完整指南 【免费下载链接】Meshroom 3D Reconstruction Software 项目地址: https://gitcode.com/gh_mirrors/me/Meshroom 开源三维重建工具Meshroom凭借摄影测量实战技术,为用户提供了从二维图像到点…...
X-AnyLabeling实战指南:AI驱动的智能数据标注工具深度解析
X-AnyLabeling实战指南:AI驱动的智能数据标注工具深度解析 【免费下载链接】X-AnyLabeling Effortless data labeling with AI support from Segment Anything and other awesome models. 项目地址: https://gitcode.com/gh_mirrors/xa/X-AnyLabeling X-AnyL…...
从零到一:51单片机数字电子时钟的DIY全流程解析
1. 项目背景与准备 数字电子时钟是单片机入门最经典的练手项目之一。我第一次接触51单片机时,也是从做一个电子时钟开始的。这个项目涵盖了定时器中断、数码管显示、按键扫描、蜂鸣器驱动等核心知识点,而且最终能看到实物运行,成就感直接拉满…...
pg_dump备份报错:Only syssso can access this table
文章目录环境症状问题原因解决方案环境 系统平台:N/A 版本:4.5.8 症状 使用pg_dump对数据库进行备份时报错: pg_dump:error:query failed:ERROR: Only syssso can access this table. pg_dump:error:query was: SELECT label, provider, …...
YOLOv8特征可视化实战:如何用一行代码查看模型内部特征图(附完整代码)
YOLOv8特征可视化实战:如何用一行代码查看模型内部特征图(附完整代码) 在计算机视觉领域,YOLO系列模型因其卓越的实时检测性能而广受欢迎。但对于开发者而言,仅仅使用模型进行预测往往不够——理解模型内部如何"思…...
Python实战:利用SymPy与SciPy高效破解复杂非线性方程组
1. 为什么需要SymPy和SciPy解非线性方程组? 遇到工程计算或科研问题时,我们常需要解像这样的方程组:xy10且yz34。这种包含平方项、三角函数或指数函数的方程,传统手工计算不仅耗时还容易出错。我去年做机器人运动学分析时…...
利用快马AI平台,十分钟为小龙虾openclaw机械爪搭建可运行原型
最近在折腾一个开源机械爪项目——小龙虾openclaw,需要快速验证硬件设计和控制逻辑。传统开发流程从写代码到烧录测试至少半天起步,但这次尝试用InsCode(快马)平台做原型开发,居然十分钟就搞定了可运行版本!记录下这个高效的工作流…...
Winhance中文版深度解析:Windows系统优化的C解决方案
Winhance中文版深度解析:Windows系统优化的C#解决方案 【免费下载链接】Winhance-zh_CN A Chinese version of Winhance. C# application designed to optimize and customize your Windows experience. 项目地址: https://gitcode.com/gh_mirrors/wi/Winhance-zh…...
