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

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

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

相关文章

NLP技术发展和相关书籍分享

自然语言处理&#xff08;Natural Language Processing&#xff0c;NLP&#xff09;是计算机科学领域和人工智能领域的重要研究方向之一&#xff0c;旨在探索实现人与计算机之间用自然语言进行有效交流的理论与方法。它融合了语言学、计算机科学、机器学习、数学、认知心理学等…

外卖系统源码解读:校园外卖APP开发全攻略

外卖系统源码解读&#xff1a;校园外卖APP开发全攻略 今天&#xff0c;小编将深入解读外卖系统的源码&#xff0c;详细介绍如何开发一款功能齐全的校园外卖APP&#xff0c;帮助开发者快速上手&#xff0c;打造出高质量的外卖应用。 一、需求分析 应具备以下基本功能&#xff…

idea的project structure下project [lauguage ]()level 没有java的sdk17选项如何导入

idea的project structure下project lauguage level 没有java的sdk17选项如何导入 别导入了&#xff0c;需要升级idea版本。idea中没有project language level没有17如何添加 - CSDN文库 别听这文章瞎扯淡 2021版本就是没有&#xff0c;直接卸载升级到最新版本就可以了。没办法…

AcWing 2568:树链剖分 ← 线段树+DFS

【题目来源】https://www.acwing.com/problem/content/2570/【题目描述】 给定一棵树&#xff0c;树中包含 n 个节点&#xff08;编号 1∼n&#xff09;&#xff0c;其中第 i 个节点的权值为 ai。 初始时&#xff0c;1 号节点为树的根节点。 现在要对该树进行 m 次操作&#xf…

央视网视频下载和花屏问题处理

央视网(www.cctv.com)视频下载往往是花屏的&#xff0c;如何处理呢&#xff1f; 如果您是IT技术开发者&#xff0c;那么您可以通过下面步骤自己实现。 用chrome浏览器&#xff0c;F2打开开发者工具&#xff0c;找到当前页面的network 然后找一个接口&#xff1a;https://vdn.a…

文生图模型演进:AE、VAE、VQ-VAE、VQ-GAN、DALL-E 等 8 模型

节前&#xff0c;我们星球组织了一场算法岗技术&面试讨论会&#xff0c;邀请了一些互联网大厂朋友、参加社招和校招面试的同学。 针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。 合集&#x…

OC IOS 文件解压缩预览

热很。。热很。。。。夏天的城市只有热浪没有情怀。。。 来吧&#xff0c;come on。。。 引用第三方库&#xff1a; pod SSZipArchive 开发实现&#xff1a; 一、控制器实现 头文件控制器定义&#xff1a; // // ZipRarViewController.h // // Created by carbonzhao on 2…

OTFS系统建模、通信性能分析、信道估计、模糊函数【附MATLAB代码】

文献来源&#xff1a;​微信公众号&#xff1a;EW Frontier OTFS简介 OTFS信道估计 % Clear command window, workspace variables, and close all figures clc; clear all; close all; ​ % Define Eb values in dB EbdB -10:2:10; ​ % Convert Eb values from dB to lin…

【测评】香橙派 AIpro上手初体验

AI毋庸置疑是近年来&#xff0c;热度最高的技术之一&#xff0c;作为一名工程师拥抱新技术的同时不可或缺的需要一块强悍的开发板&#xff0c;香橙派 AIpro除了拥有好看的皮囊之外&#xff0c;还拥有一个有趣且充满魅力的灵魂。作为一位长期活跃在嵌入式开发领域的工程师&#…

OrangePi AIpro (8T)使用体验,性能测试报告

前言 这段时间收到了CSDN和香橙派的邀请&#xff0c;对OrangePi AIpro进行体验测评&#xff0c;在此感谢CSDN对我的信任&#xff0c;也感谢香橙派能做出如此优秀的开发板。 可喜可贺&#xff0c;周三晚上我收到了官方寄出的OrangePi AIpro。出于对国产芯片的好奇&#xff0c…

二分答案思想下的二进制问题

序列合并 题目描述 给定一个长度为 n n n 的非负整数序列 { a n } \{a_n\} {an​}&#xff0c;你可以进行 k k k 次操作&#xff0c;每次操作你选择两个相邻的数&#xff0c;把它们合并成它们的按位或。 形式化地&#xff0c;一次操作中&#xff0c;你选择一个下标 i i …

李廉洋:5.29黄金原油持续震荡,今日美盘行情走势分析及策略。

黄金消息面分析&#xff1a;美联储理事鲍曼周二表示&#xff0c;她支持要么先等等再开始放缓缩减资产负债表&#xff0c;要么采取比本月早些时候宣布的更温和的放慢缩表进程。鲍曼认为商业银行准备金水平仍然充足&#xff0c;这让官员们有更多时间来推进缩表进程。“在准备金接…

你的手机是如何控制你的手表之广播篇

前言 要让手机能够控制手表&#xff0c;第一步当然要让手机能够“看见”手表&#xff0c;人类作为上帝视角&#xff0c;我们是能够通过眼睛直接看见手机和手表的&#xff0c;但要让手机“看见”手表&#xff0c;就需要一端把自己的信息通过电磁波的形式发往空中&#xff0c;另…

Excel中怎样将第一行建立好的规则套用到每一行?

考虑使用条件格式来完成&#xff0c;有两种方式可以尝试&#xff1a; 一、一次性创建条件格式 1.选中需要设置条件格式的区域&#xff0c;如果是不连续的区域&#xff0c;可以按住Ctrl键&#xff0c;然后用鼠标依次选中需要的数据区域 2.点击 开始选项卡&#xff0c;条件格式…

解决Plugin ‘maven-clean-plugin:3.1.0‘ not found的问题

1. 问题描述 当导入别人的Maven项目时&#xff0c;可能会出现Plugin maven-clean-plugin:3.1.0 not found的错误信息。 2. 解决方案 2.1 方案一 检查自己的Maven仓库地址是否正确&#xff0c;一般引入其他人的项目时&#xff0c;Maven仓库的目录以及配置都会是别人的&#xff…

Broker的主从架构

为了保证MQ的数据不丢失而且具备一定的高可用性&#xff0c;所以一般都是得将Broker部署成Master-Slave模式的&#xff0c;也就是—个Master Broker对应一个Slave Broker Master需要在接收到消息之后&#xff0c;将数据同步给Slave&#xff0c;这样一旦Master Broker挂了&#…

新能源汽车为乙炔炭黑行业带来了发展机遇

新能源汽车为乙炔炭黑行业带来了发展机遇 乙炔炭黑&#xff08;Acetylene carbon black&#xff09;又称乙炔黑&#xff0c;外观为黑色极细粉末&#xff0c;相对密度1.95&#xff08;氮置换法&#xff09;&#xff0c;纯度很高&#xff0c;含碳量大于99.5%&#xff0c;氢含量小…

Java 泛型 <? super T> 中 super 怎么 理解?与 extends 有何不同?

作者&#xff1a;zhang siege 链接&#xff1a;https://www.zhihu.com/question/20400700/answer/91106397 来源&#xff1a;知乎 著作权归作者所有。商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处。 首先&#xff0c;泛型的出现时为了安全&#xff0c;所有与…

VSCode安装platformio插件

文章目录 一、安装VSCode二、安装platformio&#xff08;一&#xff09;整理文件夹&#xff08;二&#xff09;整理Python环境&#xff08;三&#xff09;安装platformio 三、创建ESP8266项目四、使用命令行创建项目五、创建项目太久怎么办六、参考链接 一、安装VSCode VSCode…

AIGC笔记--基于PEFT库使用LoRA

1--相关讲解 LORA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS LoRA 在 Stable Diffusion 中的三种应用&#xff1a;原理讲解与代码示例 PEFT-LoRA 2--基本原理 固定原始层&#xff0c;通过添加和训练两个低秩矩阵&#xff0c;达到微调模型的效果&#xff1b; 3--简单代…