小白学Pytorch系列--Torch API (7)

news2025/1/17 22:04:11

小白学Pytorch系列–Torch API (7)

Comparison Ops

allclose

此函数检查输入和其他是否满足条件:

>>> torch.allclose(torch.tensor([10000., 1e-07]), torch.tensor([10000.1, 1e-08]))
False
>>> torch.allclose(torch.tensor([10000., 1e-08]), torch.tensor([10000.1, 1e-09]))
True
>>> torch.allclose(torch.tensor([1.0, float('nan')]), torch.tensor([1.0, float('nan')]))
False
>>> torch.allclose(torch.tensor([1.0, float('nan')]), torch.tensor([1.0, float('nan')]), equal_nan=True)
True

argsort

返回沿给定维度按值升序对张量进行排序的索引。

>>> a = torch.randn(4, 4)
>>> a
tensor([[ 0.0785,  1.5267, -0.8521,  0.4065],
        [ 0.1598,  0.0788, -0.0745, -1.2700],
        [ 1.2208,  1.0722, -0.7064,  1.2564],
        [ 0.0669, -0.2318, -0.8229, -0.9280]])


>>> torch.argsort(a, dim=1)
tensor([[2, 0, 3, 1],
        [3, 2, 1, 0],
        [2, 1, 0, 3],
        [3, 2, 1, 0]])

eq

计算逐元素相等性

>>> torch.eq(torch.tensor([[1, 2], [3, 4]]), torch.tensor([[1, 1], [4, 4]]))
tensor([[ True, False],
        [False, True]])

equal

如果两个张量具有相同的大小和元素,则为 True,否则为 False。

>>> torch.equal(torch.tensor([1, 2]), torch.tensor([1, 2]))
True

ge

计算输入≥其他元素。

>>> torch.ge(torch.tensor([[1, 2], [3, 4]]), torch.tensor([[1, 1], [4, 4]]))
tensor([[True, True], [False, True]])

greater_equal

torch.ge() 的别名

gt

计算输入>其他元素。

>>> torch.gt(torch.tensor([[1, 2], [3, 4]]), torch.tensor([[1, 1], [4, 4]]))
tensor([[False, True], [False, False]])

greater

torch.gt() 的别名

isclose

返回一个带有布尔元素的新张量,表示输入的每个元素是否“接近”其他元素的相应元素。 亲密度定义为:

>>> torch.isclose(torch.tensor((1., 2, 3)), torch.tensor((1 + 1e-10, 3, 4)))
tensor([ True, False, False])
>>> torch.isclose(torch.tensor((float('inf'), 4)), torch.tensor((float('inf'), 6)), rtol=.5)
tensor([True, True])

isfinite

返回一个新的张量,其中包含表示每个元素是否有限的布尔元素。

>>> torch.isfinite(torch.tensor([1, float('inf'), 2, float('-inf'), float('nan')]))
tensor([True,  False,  True,  False,  False])

isin

测试元素的每个元素是否在 test_elements 中。 返回与元素相同形状的布尔张量,对于 test_elements 中的元素为 True,否则为 False。

torch.isin(torch.tensor([[1, 2], [3, 4]]), torch.tensor([2, 3]))
tensor([[False,  True],
        [ True, False]])

isinf

测试输入的每个元素是否为无穷大(正无穷大或负无穷大)。

>>> torch.isinf(torch.tensor([1, float('inf'), 2, float('-inf'), float('nan')]))
tensor([False,  True,  False,  True,  False])

isposinf

测试输入的每个元素是否为正无穷大。

>>> a = torch.tensor([-float('inf'), float('inf'), 1.2])
>>> torch.isposinf(a)
tensor([False,  True, False])

isneginf

测试输入的每个元素是否为负无穷大。

>>> a = torch.tensor([-float('inf'), float('inf'), 1.2])
>>> torch.isneginf(a)
tensor([ True, False, False])

isnan

返回一个新的张量,其中布尔元素表示输入的每个元素是否为NaN。当复数值的实部和/或虚部为NaN时,将其视为NaN。

>>> torch.isnan(torch.tensor([1, float('nan'), 2]))
tensor([False, True, False])

isreal

返回一个新的张量,其中布尔元素表示输入的每个元素是否为实值。所有实数类型都被认为是实数。当复数值的虚部为0时,它们被认为是实数。

>>> torch.isreal(torch.tensor([1, 1+1j, 2+0j]))
tensor([True, False, True])

kthvalue

返回一个命名元组(值、索引),其中值是给定维度dim中输入张量每行的第k个最小元素。索引是找到的每个元素的索引位置。

>>> x = torch.arange(1., 6.)
>>> x
tensor([ 1.,  2.,  3.,  4.,  5.])
>>> torch.kthvalue(x, 4)
torch.return_types.kthvalue(values=tensor(4.), indices=tensor(3))

>>> x=torch.arange(1.,7.).resize_(2,3)
>>> x
tensor([[ 1.,  2.,  3.],
        [ 4.,  5.,  6.]])
>>> torch.kthvalue(x, 2, 0, True)
torch.return_types.kthvalue(values=tensor([[4., 5., 6.]]), indices=tensor([[1, 1, 1]]))

le

计算输入≤其他元素。

>>> torch.le(torch.tensor([[1, 2], [3, 4]]), torch.tensor([[1, 1], [4, 4]]))
tensor([[True, False], [True, True]])

less_equal

torch.le()的别名。

lt

计算输入<其他元素。

>>> torch.lt(torch.tensor([[1, 2], [3, 4]]), torch.tensor([[1, 1], [4, 4]]))
tensor([[False, False], [True, False]])

less

torch.lt()的别名

maximum

计算输入和其他元素的元素最大值。

>>> a = torch.tensor((1, 2, -1))
>>> b = torch.tensor((3, 0, 4))
>>> torch.maximum(a, b)
tensor([3, 2, 4])

minimum

计算输入和其他的元素最小值。

>>> a = torch.tensor((1, 2, -1))
>>> b = torch.tensor((3, 0, 4))
>>> torch.minimum(a, b)
tensor([1, 0, -1])

fmax

计算输入和其他的元素最大值。

>>> a = torch.tensor([9.7, float('nan'), 3.1, float('nan')])
>>> b = torch.tensor([-2.2, 0.5, float('nan'), float('nan')])
>>> torch.fmax(a, b)
tensor([9.7000, 0.5000, 3.1000,    nan])

fmin

计算输入和其他的元素最小值。

>>> a = torch.tensor([2.2, float('nan'), 2.1, float('nan')])
>>> b = torch.tensor([-9.3, 0.1, float('nan'), float('nan')])
>>> torch.fmin(a, b)
tensor([-9.3000, 0.1000, 2.1000,    nan])

ne

计算输入≠其他元素。

>>> torch.ne(torch.tensor([[1, 2], [3, 4]]), torch.tensor([[1, 1], [4, 4]]))
tensor([[False, True], [True, False]])

not_equal

torch.ne()的别名。

sort

将输入张量的元素沿给定维度按值升序排列。

>>> x = torch.randn(3, 4)
>>> sorted, indices = torch.sort(x)
>>> sorted
tensor([[-0.2162,  0.0608,  0.6719,  2.3332],
        [-0.5793,  0.0061,  0.6058,  0.9497],
        [-0.5071,  0.3343,  0.9553,  1.0960]])
>>> indices
tensor([[ 1,  0,  2,  3],
        [ 3,  1,  0,  2],
        [ 0,  3,  1,  2]])

>>> sorted, indices = torch.sort(x, 0)
>>> sorted
tensor([[-0.5071, -0.2162,  0.6719, -0.5793],
        [ 0.0608,  0.0061,  0.9497,  0.3343],
        [ 0.6058,  0.9553,  1.0960,  2.3332]])
>>> indices
tensor([[ 2,  0,  0,  1],
        [ 0,  1,  1,  2],
        [ 1,  2,  2,  0]])
>>> x = torch.tensor([0, 1] * 9)
>>> x.sort()
torch.return_types.sort(
    values=tensor([0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1]),
    indices=tensor([ 2, 16,  4,  6, 14,  8,  0, 10, 12,  9, 17, 15, 13, 11,  7,  5,  3,  1]))
>>> x.sort(stable=True)
torch.return_types.sort(
    values=tensor([0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1]),
    indices=tensor([ 0,  2,  4,  6,  8, 10, 12, 14, 16,  1,  3,  5,  7,  9, 11, 13, 15, 17]))

topk

返回给定输入张量沿给定维度的k个最大元素。

>>> x = torch.arange(1., 6.)
>>> x
tensor([ 1.,  2.,  3.,  4.,  5.])
>>> torch.topk(x, 3)
torch.return_types.topk(values=tensor([5., 4., 3.]), indices=tensor([4, 3, 2]))

msort

按值升序排列输入张量的第一个维度上的元素。

>>> t = torch.randn(3, 4)
>>> t
tensor([[-0.1321,  0.4370, -1.2631, -1.1289],
        [-2.0527, -1.1250,  0.2275,  0.3077],
        [-0.0881, -0.1259, -0.5495,  1.0284]])
>>> torch.msort(t)
tensor([[-2.0527, -1.1250, -1.2631, -1.1289],
        [-0.1321, -0.1259, -0.5495,  0.3077],
        [-0.0881,  0.4370,  0.2275,  1.0284]])

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

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

相关文章

MATLAB | 如何自然好看的从图片中提取颜色并制作色卡

在这里研究了一下各种排序算法&#xff0c;写一篇如何由图片一键生成颜色条的方法。 1 关于大量颜色排序 假设有大量颜色怎么对其进行排序呢&#xff0c;首先想到的最简单方法就是将其按照RGB值的大小进行排序&#xff0c;为了方便展示颜色条&#xff0c;这里编写了一个颜色条…

【Pytorch】 理解张量Tensor

本文参加新星计划人工智能(Pytorch)赛道&#xff1a;https://bbs.csdn.net/topics/613989052 这是目录张量Tensor是什么&#xff1f;张量的创建为什么要用张量Tensor呢&#xff1f;总结张量Tensor是什么&#xff1f; 在深度学习中&#xff0c;我们经常会遇到一个概念&#xff…

初探Redis整体架构

文章目录1、Redis为什么选择单线程2、逐步加入多线程3、Redis采用IO多路复用---epoll和Reactor架构4、Redis6/7默认是否开启了多线程&#xff1f;1、Redis为什么选择单线程 这种问法其实并不严谨&#xff0c;为啥这么说呢? Redis几个里程碑式的重要版本 理清一个事实&#…

一文带你安装opencv和常用库(保姆级教程少走80%的弯路)

0.导语 离上一个opencv安装保姆级教程发布已经过去了快一年了&#xff0c;这一年来我收到了来自很多C友的鼓励。打算学opencv的各位朋友都会在安装opencv和各种库过程中浪费掉60%的时间和精力&#xff1b;博主在这一年来尝试各种各样的安装方法&#xff0c;全网搜集各种资料总…

[ 云计算 | Azure ] Chapter 05 | 核心体系结构之管理组、订阅、资源和资源组以及层次关系

本文主要对如下内容进行讲解&#xff1a;Azure云计算的核心体系结构组件中的&#xff1a;资源、订阅和资源组&#xff0c;以及了解 Azure 资源管理器 (ARM) 如何部署资源。 本系列已经更新文章列表&#xff1a; [ 云计算 | Azure ] Chapter 03 | 描述云计算运营中的 CapEx 与…

元宇宙与网络安全

元宇宙是一种虚拟现实空间&#xff0c;用户可以在计算机生成的环境中进行互动。元宇宙的应用范围很广&#xff0c;比如房地产&#xff0c;医疗&#xff0c;教育&#xff0c;军事&#xff0c;游戏等等。它提供了更具沉浸感的体验&#xff0c;更好地现实生活整合&#xff0c;以及…

图像分类算法:ResNet论文解读

图像分类算法&#xff1a;ResNet论文解读 前言 ​ 其实网上已经有很多很好的解读各种论文的文章了&#xff0c;但是我决定自己也写一写&#xff0c;当然&#xff0c;我的主要目的就是帮助自己梳理、深入理解论文&#xff0c;因为写文章&#xff0c;你必须把你所写的东西表达清楚…

游戏工厂:AI(AIGC/ChatGPT)与流程式游戏开发(码客 卢益贵)

关键词&#xff1a;AI&#xff08;AIGC、ChatGPT、文心一言&#xff09;、流程式管理、好莱坞电影流程、电影工厂、游戏工厂、游戏开发流程、游戏架构、模块化开发 一、前言 开发周期长、人工成本高、成功率低等使得游戏公司融资比较困难。有的公司凭一个爆款游戏一骑绝尘之后…

奇异值分解(SVD)和图像压缩

在本文中&#xff0c;我将尝试解释 SVD 背后的数学及其几何意义&#xff0c;还有它在数据科学中的最常见的用法&#xff0c;图像压缩。 奇异值分解是一种常见的线性代数技术&#xff0c;可以将任意形状的矩阵分解成三个部分的乘积&#xff1a;U、S、V。原矩阵A可以表示为&#…

阿里通义千问、百度文心一言、ChatGPT与GPT-4大比拼

各个大模型的研究测试传送门 ​阿里通义千问传送门&#xff1a; https://tongyi.aliyun.com/chat 百度文心一言传送门&#xff1a; https://yiyan.baidu.com/ ChatGPT传送门&#xff08;免墙&#xff0c;可直接注册测试&#xff09;&#xff1a; https://wowchat.cn GPT…

离线安装k8s/kubernetes v1.17.1并部署服务验证功能

条件&#xff1a; 3台没有网络的centos7.9服务器 1.系统优化 hostnamectl set-hostname k8s-master && bash #只在master节点上执行 hostnamectl set-hostname k8s-node1 && bash #只在node1节点上执行 hostnamectl set-hostname k8s-node2 && …

嵌入式:BSP的理解

BSP概念总结BSP定义BSP的特点BSP的主要工作BSP在嵌入式系统和Windowsx系统中的不同BSP和PC机主板上的BIOS区别BSP与 HAL关系嵌入式计算机系统主要由 硬件层&#xff0c;中间层&#xff0c;系统软件层和应用软件层四层组成。硬件层&#xff1a;包含CPU&#xff0c;存储器(SDRAM&…

(数字图像处理MATLAB+Python)第四章图像正交变换-第一节:离散傅里叶变换

文章目录一&#xff1a;一维离散傅里叶变换&#xff08;1&#xff09;定义&#xff08;2&#xff09;实例二&#xff1a;一维快速傅里叶变换&#xff08;1&#xff09;定义&#xff08;2&#xff09;实例三&#xff1a;二维离散傅里叶变换&#xff08;1&#xff09;定义&#x…

SpringCloud微服务技术栈.黑马跟学(十二)

SpringCloud微服务技术栈.黑马跟学 十二今日目标服务异步通信-高级篇1.消息可靠性1.1.生产者消息确认1.1.1.修改配置1.1.2.定义Return回调1.1.3.定义ConfirmCallback1.2.消息持久化1.2.1.交换机持久化1.2.2.队列持久化1.2.3.消息持久化1.3.消费者消息确认1.3.1.演示none模式1.3…

Flutter TextField UI 实例 —— 新手礼包

大家好&#xff0c;我是17。 新手礼包一共 3 篇文章&#xff0c;每篇都是描述尽量详细&#xff0c;实例讲解&#xff0c;包会&#xff01; Flutter Row 实例 —— 新手礼包Flutter TextField UI 实例 —— 新手礼包Flutter TextField 交互实例 —— 新手礼包 本篇介绍了 Tex…

机器学习:基于逻辑回归对超市销售活动预测分析

系列文章目录 作者&#xff1a;i阿极 作者简介&#xff1a;Python领域新星作者&#xff1a;博主个人首页 &#x1f60a;&#x1f60a;&#x1f60a;如果觉得文章不错或能帮助到你学习&#xff0c;可以点赞&#x1f44d;收藏&#x1f4c1;评论&#x1f4d2;关注哦&#xff01;&a…

linxu学习之进程

文章目录进程程序和进程产生进程销毁进程多进程高并发设计孤儿僵尸守护进程孤儿进程&#xff1a;守护进程(重点)僵尸进程&#xff1a;进程 程序和进程 操作系统可以运行多个程序&#xff0c;那他是如何运行的&#xff1f;实际上&#xff0c;CPU的执行是很快的&#xff0c;而待…

《随便测测》WEB接口测试平台

编写用例的船新版本&#xff0c;从未有过的顺滑体验背景在保证用例运行稳定、高效、准确的前提下以降低测试人员编写用例的时间为目的&#xff0c;减少编写用例的复杂度&#xff0c;达到提升效率的目的。解决问题因被测系统业务流程长&#xff0c;接口多&#xff08;多的一个场…

【ssl认证、证书】SSL 证书基本概念、证书格式、openssl和keytool的区别

文章目录1. keytool VS openssl2. X.509 VS PKCS2.1 PKCS2.2 X.5092.2.1 证书编码格式2.2.1.1 DER 证书编码格式二进制2.2.1.2 文本格式 pem2.2.2 文件后缀名3. 常见Web服务软件及证书格式参考相关文章&#xff1a;//-----------Java SSL begin----------------------【ssl认证…

【云原生】k8s集群命令行工具kubectl之集群管理命令

kubectl集群管理命令详解一、准备工作1.1、Replication Controller1.2、Deployment1.3、DaemonSet1.4、查看创建的svc和pod1.5、kubectl 命令自动补全设置二、集群管理命令2.1、top2.2、cordon2.3、uncordon2.4、drain2.5、taint2.5.1、污点设置。2.5.2、容忍度使用一、准备工作…