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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【从零开始学习RabbitMQ | 第二篇】如何确保MQ的可靠性和消费者可靠性

目录 前言&#xff1a; MQ可靠性&#xff1a; 数据持久化&#xff1a; Lazy Queue&#xff1a; 消费者可靠性&#xff1a; 消费者确认机制&#xff1a; 消费失败处理&#xff1a; MQ保证幂等性&#xff1a; 方法一&#xff1a; 总结&#xff1a; 前言&#xff1a; …

以梦为马,不负韶华(3)-AGI在企业服务的应用

AGI在企业服务中&#xff0c;各应⽤已覆盖企业全流程&#xff0c;包含⼈⼒、法务、财税、流程⾃动化、知识管理和软件开发各领域。 由于⼤语⾔模型对⽂本处理类场景有着天然且直接的适配性&#xff0c;⽂本总结、⽂本内容⽣成、服务指引等发展起步早且应⽤成熟度更⾼。 在数据…

Captura完全免费的电脑录屏软件

一、简介 1、Captura 是一款免费开源的电脑录屏软件&#xff0c;允许用户捕捉电脑屏幕上的任意区域、窗口、甚至是全屏画面&#xff0c;并将这些画面录制为视频文件。这款软件具有多种功能&#xff0c;例如可以设置是否显示鼠标、记录鼠标点击、键盘按键、计时器以及声音等。此…

LeetCode题练习与总结:有序链表转换二叉搜索树--109

一、题目描述 给定一个单链表的头节点 head &#xff0c;其中的元素 按升序排序 &#xff0c;将其转换为平衡二叉搜索树。 示例 1: 输入: head [-10,-3,0,5,9] 输出: [0,-3,9,-10,null,5] 解释: 一个可能的答案是[0&#xff0c;-3,9&#xff0c;-10,null,5]&#xff0c;它表…

医疗图像处理2023:Transformers in medical imaging: A survey

医学成像中的transformer:综述 目录 一、介绍 贡献与安排 二、CNN和Transformer 1.CNN 2.ViT 三、Transformer应用于各个领域 1.图像分割 1&#xff09;器官特异性 ①2D ②3D 2&#xff09;多器官类别 ①纯transformer ②混合架构 单尺度 多尺度 3&#xff09;…

Kubernetes——监听机制与调度约束

目录 前言 一、监听机制 1.Pod启动创建过程 2.调度过程 1.指定调度节点 1.1强制匹配 1.2强制约束 二、硬策略和软策略 1.键值运算关系 1.硬策略——requiredDuringSchedulingIgnoredDuringExecution 2.软策略——preferredDuringSchedulingIgnoredDuringExecution …

Varjo XR-4功能详解:由凝视驱动的XR自动对焦相机系统

Varjo是XR市场中拥有领先技术的虚拟现实设备供应商&#xff0c;其将可变焦距摄像机直通系统带入到虚拟和混合现实场景中。在本篇文章中&#xff0c;Varjo的技术工程师维尔蒂莫宁详细介绍了这项在Varjo XR-4焦点版中投入应用的技术。 对可变焦距光学系统的需求 目前所有其他XR头…

基于STM32实现智能饮水机控制系统

目录 引言环境准备智能饮水机控制系统基础代码示例&#xff1a;实现智能饮水机控制系统 温度传感器数据读取水泵和加热器控制水位传感器数据读取用户界面与显示应用场景&#xff1a;家庭和办公室的智能饮水管理问题解决方案与优化收尾与总结 1. 引言 本教程将详细介绍如何在S…

自适应感兴趣区域的级联多尺度残差注意力CNN用于自动脑肿瘤分割| 文献速递-深度学习肿瘤自动分割

Title 题目 Cascade multiscale residual attention CNNs with adaptive ROI for automatic brain tumor segmentation 自适应感兴趣区域的级联多尺度残差注意力CNN用于自动脑肿瘤分割 01 文献速递介绍 脑肿瘤是大脑细胞异常和不受控制的增长&#xff0c;被认为是神经系统…

第二证券炒股知识:股票破发后怎么办?

当一只新股的价格跌破其发行价时&#xff0c;往往会受到商场出资者的关注。关于股票破发后怎么办&#xff0c;第二证券下面就为我们具体介绍一下。 股票破发是指股票的商场价格低于其发行价格或最近一次增发价格&#xff0c;股票破发往往是由于多种要素共同作用的结果&#xf…

强化学习——学习笔记2

在上一篇文章中对强化学习进行了基本的概述&#xff0c;在此篇文章中将继续深入强化学习的相关知识。 一、什么是DP、MC、TD&#xff1f; 动态规划法&#xff08;DP&#xff09;&#xff1a;动态规划法离不开一个关键词&#xff0c;拆分 &#xff0c;就是把求解的问题分解成若…

亡羊补牢,一文讲清各种场景下GIT如何回退

系列文章目录 手把手教你安装Git&#xff0c;萌新迈向专业的必备一步 GIT命令只会抄却不理解&#xff1f;看完原理才能事半功倍&#xff01; 常用GIT命令详解&#xff0c;手把手让你登堂入室 GIT实战篇&#xff0c;教你如何使用GIT可视化工具 GIT使用需知&#xff0c;哪些操作…

Meta 推出新型多模态 AI 模型“变色龙”(Chameleon),挑战 GPT-4o,引领多模态革命

在人工智能领域&#xff0c;Meta 近日发布了一款名为“变色龙”&#xff08;Chameleon&#xff09;的新型多模态 AI 模型&#xff0c;旨在挑战 OpenAI 的 GPT-4o&#xff0c;并刷新了当前的技术标准&#xff08;SOTA&#xff09;。这款拥有 34B 参数的模型通过 10 万亿 token 的…

2-EMMC启动及各分区文件生成过程

EMMC的使用比nand flash还是复杂一些&#xff0c;有其特有的分区和电器性能 1、启动过程介绍 跟普通nand或spi flash不同&#xff0c;uboot前面还有好几级 在vendor某些厂商的设计中&#xff0c;ATF并不是BOOTROM加载后的第一个启动镜像&#xff0c;可能是这样的&#xff1a; …

微信小程序多端应用Donut Android生成签名

一、生成签名的作用 确保应用的完整性&#xff1a;签名可以确保应用在发布后没有被修改。如果应用被修改&#xff0c;签名就会改变&#xff0c;Android系统就会拒绝安装。确定应用的唯一身份&#xff1a;签名是应用的唯一标识&#xff0c;Android系统通过签名来区分不同的应用…

【Postman接口测试】第二节.Postman界面功能介绍(上)

文章目录 前言一、Postman前言介绍二、Postman界面导航说明三、使用Postman发送第一个请求四、Postman 基础功能介绍 4.1 常见类型的接口请求 4.1.1 查询参数的接口请求 4.1.2 表单类型的接口请求 4.1.3 上传文件的表单请求 4.1.4 JSON 类…

Linux软硬链接详解

软链接&#xff1a; ln -s file1 file2//file1为目标文件&#xff0c;file2为软链接文件 演示&#xff1a; 从上图可以得出&#xff1a; 软链接本质不是同一个文件&#xff0c;因为inode不同。 作用&#xff1a; 软连接就像是Windows里的快捷方式&#xff0c;里面存放的是目标…

动手学操作系统(三、通过IO接口直接控制显卡)

动手学操作系统&#xff08;三、通过IO接口直接控制显卡&#xff09; 在之前的学习内容中&#xff0c;我们成功编写了MBR主引导记录&#xff0c;在终端上进行了打印显示&#xff0c;在这一节我们使用MBR通过IO接口来直接控制显卡输出字符。 文章目录 动手学操作系统&#xff0…

5.28_Java语法_运算符,接收键盘数据

1、运算符 具体应用同我C语言操作符详解博客相同,另有补充会直接写 1.1、基本的算术运算符、符号做连接符 CSDN 具体应用同我C语言操作符详解博客相同 符号做连接符&#xff1a; ""符号与字符串运算连用的时候是用作连接符的&#xff0c;其结果依然是一个字符串…

“SSH服务器拒绝了密码,请再试一次”的问题解决思路

大家在使用XShell工具连接Ubuntu系统时&#xff0c;可能会出现错误如下: 通过在网上查阅资料和实践解决这个问题&#xff0c;将我的思路分享给大家&#xff01; 首先&#xff0c;我会先从使用Xshell连接远程服务器会涉及哪些东西上思考这个问题&#xff0c;即通过ssh服务连接远…