Pytorch-Reduction Ops

文章目录

  • 前言
    • 1.torch.argmax()
    • 2.torch.argmin()
    • 3.torch.amax()
    • 4.torch.amin()
    • 5.torch.all()
    • 6.torch.any()
    • 7.torch.max()
    • 8.torch.dist()
    • 9.torch.logsumexp()
    • 10.torch.mean()
    • 11.torch.norm()
    • 12.torch.nansum()
    • 13.torch.prod()
    • 14.torch.cumsum()
    • 15.torch.cumprod()


前言

在这里插入图片描述


1.torch.argmax()

torch.argmax() 是 PyTorch 中的一个函数,用于在指定维度上获取张量中最大值的索引。

torch.argmax(input, dim=None, keepdim=False)
"""
input:输入张量。
dim:可选参数,指定在哪个维度上进行操作。如果未指定,则默认在最后一个维度上进行操作。
keepdim:可选参数,指定是否保持输出张量的维度与输入张量相同。默认为 False,表示不保持维度
"""
import torch# 创建一个张量
x = torch.tensor([[1, 2, 3], [4, 5, 6]])# 沿着第一个维度获取最大值的索引
max_indices = torch.argmax(x, dim=0)
print(max_indices)  # 输出: tensor([1, 1, 1])

2.torch.argmin()

torch.argmin() 是 PyTorch 中的一个函数,用于在指定维度上获取张量中最小值的索引。

torch.argmin(input, dim=None, keepdim=False)
"""
input:输入张量。
dim:可选参数,指定在哪个维度上进行操作。如果未指定,则默认在最后一个维度上进行操作。
keepdim:可选参数,指定是否保持输出张量的维度与输入张量相同。默认为 False,表示不保持维度。
"""
import torch# 创建一个张量
x = torch.tensor([[3, 1, 2], [6, 5, 4]])# 沿着第一个维度获取最小值的索引
min_indices = torch.argmin(x, dim=0)
print(min_indices)  # 输出: tensor([0, 0, 0])

3.torch.amax()

在 PyTorch 中,torch.amax() 函数用于计算张量的最大值。

torch.amax(input, dim=None, keepdim=False)
"""
input:输入张量。
dim:可选参数,指定在哪个维度上进行操作。如果未指定,则默认在所有维度上进行操作,返回张量的全局最大值。
keepdim:可选参数,指定是否保持输出张量的维度与输入张量相同。默认为 False,表示不保持维度。
"""
import torch# 创建一个张量
x = torch.tensor([[1, 2, 3], [4, 5, 6]])# 计算全局最大值
global_max = torch.amax(x)
print(global_max)  # 输出: tensor(6)# 沿着第一个维度计算最大值
max_values = torch.amax(x, dim=0)
print(max_values)  # 输出: tensor([4, 5, 6])
import torch# 创建一个张量
x = torch.tensor([[1, 2, 3], [4, 5, 6]])# 计算全局最大值
global_max = torch.amax(x)
print(global_max)  # 输出: tensor(6)# 沿着第一个维度计算最大值
max_values = torch.amax(x, dim=0)
print(max_values)  # 输出: tensor([4, 5, 6])

4.torch.amin()

在 PyTorch 中,torch.amin() 函数用于计算张量的最小值。

torch.amin(input, dim=None, keepdim=False)
"""
input:输入张量。
dim:可选参数,指定在哪个维度上进行操作。如果未指定,则默认在所有维度上进行操作,返回张量的全局最小值。
keepdim:可选参数,指定是否保持输出张量的维度与输入张量相同。默认为 False,表示不保持维度。
"""
import torch# 创建一个张量
x = torch.tensor([[3, 1, 2], [6, 5, 4]])# 计算全局最小值
global_min = torch.amin(x)
print(global_min)  # 输出: tensor(1)# 沿着第一个维度计算最小值
min_values = torch.amin(x, dim=0)
print(min_values)  # 输出: tensor([3, 1, 2])

5.torch.all()

torch.all() 是 PyTorch 中的一个函数,用于检查张量中的所有元素是否都满足某个条件。

torch.all(input, dim=None, keepdim=False)
"""
input:输入张量。
dim:可选参数,指定在哪个维度上进行操作。如果未指定,则默认在所有元素上进行操作,返回一个标量布尔值。
keepdim:可选参数,指定是否保持输出张量的维度与输入张量相同。默认为 False,表示不保持维度。
"""
import torch# 创建一个张量
x = torch.tensor([[True, True], [False, True]])# 检查全局是否所有元素都为 True
global_all = torch.all(x)
print(global_all)  # 输出: tensor(False)# 沿着第一个维度检查是否所有元素都为 True
dim_all = torch.all(x, dim=0)
print(dim_all)  # 输出: tensor([False, True])

6.torch.any()

torch.any() 是 PyTorch 中的一个函数,用于检查张量中的任意元素是否满足某个条件。

torch.any(input, dim=None, keepdim=False)
"""
input:输入张量。
dim:可选参数,指定在哪个维度上进行操作。如果未指定,则默认在所有元素上进行操作,返回一个标量布尔值。
keepdim:可选参数,指定是否保持输出张量的维度与输入张量相同。默认为 False,表示不保持维度。
"""
import torch# 创建一个张量
x = torch.tensor([[True, True], [False, True]])# 检查全局是否存在任意一个元素为 True
global_any = torch.any(x)
print(global_any)  # 输出: tensor(True)# 沿着第一个维度检查是否存在任意一个元素为 True
dim_any = torch.any(x, dim=0)
print(dim_any)  # 输出: tensor([ True,  True])

7.torch.max()

torch.max() 是 PyTorch 中的一个函数,用于计算张量中的最大值。

torch.max(input, dim=None, keepdim=False, out=None)
"""
input:输入张量。
dim:可选参数,指定在哪个维度上进行操作。如果未指定,则默认在所有元素上进行操作,返回一个标量张量。
keepdim:可选参数,指定是否保持输出张量的维度与输入张量相同。默认为 False,表示不保持维度。
out:可选参数,指定输出张量作为结果的存储位置。
"""
import torch# 创建一个张量
x = torch.tensor([[1, 2, 3], [4, 5, 6]])# 计算全局最大值
global_max = torch.max(x)
print(global_max)  # 输出: tensor(6)# 沿着第一维度计算最大值和对应的索引
max_values, max_indices = torch.max(x, dim=0)
print(max_values)  # 输出: tensor([4, 5, 6])
print(max_indices)  # 输出: tensor([1, 1, 1])
import torch# 创建一个张量
x = torch.tensor([[1, 2, 3], [4, 5, 6]])# 沿着第一维度计算最大值和对应的索引
max_values, max_indices = torch.max(x, dim=1)
print(max_values)  # 输出: tensor([3, 6])
print(max_indices)  # 输出: tensor([2, 2])

8.torch.dist()

torch.dist() 是 PyTorch 中的一个函数,用于计算两个张量之间的距离。

torch.dist(input, other, p=2)
"""
input:第一个输入张量。
other:第二个输入张量。
p:可选参数,表示要使用的距离度量。默认为 2,表示欧氏距离。
"""
import torch# 创建两个张量
x = torch.tensor([1, 2, 3])
y = torch.tensor([4, 5, 6])# 计算欧氏距离
distance = torch.dist(x, y)
print(distance)  # 输出: tensor(5.1962)

9.torch.logsumexp()

torch.logsumexp() 是 PyTorch 中的一个函数,用于计算张量的对数求和指数。

torch.logsumexp(x, dim) = log(sum(exp(x), dim))
torch.logsumexp(input, dim, keepdim=False, out=None)
"""
input:输入张量。
dim:指定在哪个维度上进行操作。
keepdim:可选参数,指定是否保持输出张量的维度与输入张量相同。默认为 False,表示不保持维度。
out:可选参数,指定输出张量作为结果的存储位置。
"""
import torch# 创建一个张量
x = torch.tensor([1, 2, 3, 4])# 计算对数求和指数
result = torch.logsumexp(x, dim=0)
print(result)  # 输出: tensor(4.4402)

10.torch.mean()

torch.mean() 是 PyTorch 中的一个函数,用于计算张量的平均值。

torch.mean(input, dim=None, keepdim=False, out=None)
"""
input:输入张量。
dim:可选参数,指定在哪个维度上进行平均值计算。如果未指定,则默认在所有元素上进行计算,返回一个标量张量。
keepdim:可选参数,指定是否保持输出张量的维度与输入张量相同。默认为 False,表示不保持维度。
out:可选参数,指定输出张量作为结果的存储位置。
"""
import torch# 创建一个张量
x = torch.tensor([[1, 2, 3], [4, 5, 6]])# 计算全局平均值
global_mean = torch.mean(x)
print(global_mean)  # 输出: tensor(3.5000)# 沿着第一维度计算平均值
mean_values = torch.mean(x, dim=0)
print(mean_values)  # 输出: tensor([2.5000, 3.5000, 4.5000])

11.torch.norm()

torch.norm() 是 PyTorch 中的一个函数,用于计算张量的范数(norm)。

torch.norm(input, p='fro', dim=None, keepdim=False, out=None)
"""
input:输入张量。
p:可选参数,表示要计算的范数类型。默认为 'fro',表示计算 Frobenius 范数。还可以指定其他值,如 1 表示计算 L1 范数,2 表示计算 L2 范数等。
dim:可选参数,指定在哪个维度上进行范数计算。如果未指定,则默认在所有元素上进行计算,返回一个标量张量。
keepdim:可选参数,指定是否保持输出张量的维度与输入张量相同。默认为 False,表示不保持维度。
out:可选参数,指定输出张量作为结果的存储位置。
"""
import torch# 创建一个张量
x = torch.tensor([[1., 2.], [3., 4.]])# 计算 Frobenius 范数
frobenius_norm = torch.norm(x)
print(frobenius_norm)  # 输出: tensor(5.4772)# 计算 L1 范数
l1_norm = torch.norm(x, p=1)
print(l1_norm)  # 输出: tensor(10.)# 计算 L2 范数
l2_norm = torch.norm(x, p=2)
print(l2_norm)  # 输出: tensor(5.4772)# 沿着第一维度计算范数
norm_values = torch.norm(x, dim=0)
print(norm_values)  # 输出: tensor([3.1623, 4.4721])

12.torch.nansum()

torch.nansum() 是 PyTorch 中的一个函数,用于计算张量中忽略 NaN(Not a Number)值的元素之和。

torch.nansum(input, dim=None, keepdim=False, dtype=None, out=None)
"""
input:输入张量。
dim:可选参数,指定在哪个维度上进行求和。如果未指定,则默认在所有元素上进行求和,返回一个标量张量。
keepdim:可选参数,指定是否保持输出张量的维度与输入张量相同。默认为 False,表示不保持维度。
dtype:可选参数,指定输出张量的数据类型。如果未指定,则默认使用输入张量的数据类型。
out:可选参数,指定输出张量作为结果的存储位置。
"""
import torch# 创建一个包含 NaN 值的张量
x = torch.tensor([[1, float('nan'), 3], [4, 5, float('nan')]])# 沿着第一维度计算忽略 NaN 值后的求和
sum_values = torch.nansum(x, dim=0)
print(sum_values)  # 输出: tensor([5., 5., 3.])

13.torch.prod()

torch.prod() 是 PyTorch 中的一个函数,用于计算张量中元素的乘积。

torch.prod(input, dim=None, keepdim=False, dtype=None)
"""
input:输入张量。
dim:可选参数,指定在哪个维度上进行乘积计算。如果未指定,则默认在所有元素上进行乘积,返回一个标量张量。
keepdim:可选参数,指定是否保持输出张量的维度与输入张量相同。默认为 False,表示不保持维度。
dtype:可选参数,指定输出张量的数据类型。如果未指定,则默认使用输入张量的数据类型。
"""
import torch# 创建一个张量
x = torch.tensor([[1, 2], [3, 4]])# 计算所有元素的乘积
product = torch.prod(x)
print(product)  # 输出: tensor(24)# 沿着第一维度计算乘积
product_values = torch.prod(x, dim=0)
print(product_values)  # 输出: tensor([3, 8])# 沿着多个维度同时计算乘积
product_multiple_dims = torch.prod(x, dim=0, keepdim=True)
product_multiple_dims = torch.prod(product_multiple_dims, dim=1, keepdim=True)
print(product_multiple_dims)  # 输出: tensor([[24]])

14.torch.cumsum()

torch.cumsum() 是 PyTorch 中的一个函数,用于计算张量中元素的累积和(逐元素累积求和)。

torch.cumsum(input, dim, dtype=None)
"""
input:输入张量。
dim:指定在哪个维度上进行累积和计算。
dtype:可选参数,指定输出张量的数据类型。如果未指定,则默认使用输入张量的数据类型。
"""
import torch# 创建一个张量
x = torch.tensor([[1, 2, 3], [4, 5, 6]])# 沿着第一维度计算累积和
cumulative_sum = torch.cumsum(x, dim=0)
print(cumulative_sum)
# 输出:
# tensor([[1, 2, 3],
#         [5, 7, 9]])# 沿着第二维度计算累积和
cumulative_sum_dim1 = torch.cumsum(x, dim=1)
print(cumulative_sum_dim1)
# 输出:
# tensor([[ 1,  3,  6],
#         [ 4,  9, 15]])

15.torch.cumprod()

torch.cumprod() 是 PyTorch 中的一个函数,用于计算张量中元素的累积乘积(逐元素累积求积)。

torch.cumprod(input, dim, dtype=None)
"""
input:输入张量。
dim:指定在哪个维度上进行累积乘积计算。
dtype:可选参数,指定输出张量的数据类型。如果未指定,则默认使用输入张量的数据类型
"""
import torch# 创建一个张量
x = torch.tensor([[1, 2, 3], [4, 5, 6]])# 沿着第一维度计算累积乘积
cumulative_product = torch.cumprod(x, dim=0)
print(cumulative_product)
# 输出:
# tensor([[ 1,  2,  3],
#         [ 4, 10, 18]])# 沿着第二维度计算累积乘积
cumulative_product_dim1 = torch.cumprod(x, dim=1)
print(cumulative_product_dim1)
# 输出:
# tensor([[ 1,  2,  6],
#         [ 4, 20, 120]])

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

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

相关文章

node环境问题(无法加载文件D:\Software\Node.js\node_global\vue.ps1,因为在此系统上禁止运行脚本。)

问题:npm安装lerna显示安装成功,但是lerna -v的时候报错 解决步骤: 1、输入:Get-ExecutionPolicy 2、输入:Set-ExecutionPolicy -Scope CurrentUser(有选项的选Y) 3、输入:RemoteSi…

【记录】打印|无需排版,生成证件照打印PDF,打印在任意尺寸的纸上(简单无损!)

以前我打印证件照的时候,我总是在网上找在线证件照转换或者别的什么。但是我今天突然就琢磨了一下,用 PDF 打印应该也可以直接打印出来,然后就琢磨出来了,这么一条路大家可以参考一下。我觉得比在线转换成一张 a4 纸要方便的多&am…

Python爬虫要掌握哪些东西

学习Python爬虫,你需要掌握以下几个关键方面的知识: 文章目录 Python基础:首先,确保你对Python语言有良好的理解,包括基本语法、数据结构(如列表、字典、集合等)、函数、类和对象、模块和包的使用等。# 有一个数字列表,要创建新的列表,元素是原列表中每个元素的平方 …

深入探索MySQL SELECT查询:从基础到高级,解锁数据宝藏的密钥

系列文章目录 更新ing... MySQL操作全攻略:库、表、数据、事务全面指南深入探索MySQL SELECT查询:从基础到高级,解锁数据宝藏的密钥MySQL SELECT查询实战:练习题精选,提升你的数据库查询技能PyMySQL:连接P…

解决 x-content-sha256 no match 错误,对 S3CrtAsyncHttpClient 修改

一、CRT修改核心逻辑: 找到 software.amazon.awssdk.services.s3.internal.crt 包下 S3CrtAsyncHttpClient 按照逻辑需要对 GET请求进行适配 signingConfig.setSignedBodyValue(AwsSigningConfig.AwsSignedBodyValue.EMPTY_SHA256); if("GET".equals(asyncRequ…

orin部署tensorrt、cuda、cudnn、pytorch、onnx

绝大部分参考https://blog.csdn.net/qq_41336087/article/details/129661850 非orin可以参考https://blog.csdn.net/JineD/article/details/131201121 报错显卡驱动安装535没法安装、原始是和l4t-cuda的部分文件冲突 Options marked [*] produce a lot of output - pipe it t…

数据结构(一)顺序表

目录 一、概念(一)数据结构的三元素1. 逻辑结构(1)线性结构(2)非线性结构 2. 存储结构(1)顺序存储(2)链式存储(3)索引存储 3. 运算 &a…

Linux下Git的基本使用

认识Git 先基于Windows下的git操作,熟悉了git的基本概念和使用,直接参考这几篇文章: Git概述、安装与本地仓库的基本操作-CSDN博客 Git本地仓库与远程仓库的交互-CSDN博客 GtiHub远程仓库之间的交互-CSDN博客 Git仓库的分支操作-CSDN博客 仓库…

深度学习中点云在预处理时的增强策略

在深度学习中,点云数据的增强策略主要用于提升模型的泛化能力和鲁棒性。点云是一种表示三维数据的形式,由一组三维坐标点组成,广泛应用于计算机视觉、自动驾驶和机器人等领域。对点云数据进行预处理和增强可以有效提高模型的性能。以下是一些…

服装服饰商城小程序的作用是什么

要说服装商家,那数量是非常多,厂家/经销门店/小摊/无货源等,线上线下同行竞争激烈,虽然用户群体广涵盖每个人,但每个商家肯定都希望更多客户被自己转化,渠道运营方案营销环境等不可少。 以年轻人为主的消费…

详细介绍推荐系统的实现原理与理论公式

目录 什么是推荐系统? 统计概况 推荐系统的类型 推荐系统——明确反馈 推荐系统——隐式反馈 评级矩阵

triton源码分析之setup.py

一 执行流程 在执行pip install -e .的时候,便会执行这个文件,文件的入口为: setup(name=os.environ.get("TRITON_WHEEL_NAME", "triton"),version="3.0.0" + os.environ.get("TRITON_WHEEL_VERSION_SUFFIX", ""),auth…

国产PS插件新选择;StartAI平替中的佼佼者!

前言 在设计的世界里,每一个细节都至关重要。设计师们常常面临时间紧迫、创意受限、工具复杂等挑战。Photoshop虽强大,但繁琐的操作和高昂的成本往往令人望而却步。今天我就为大家介绍一款PSAI插件——StartAI,一款专为Photoshop设计的国产A…

【Linux终端探险】:从入门到熟练,玩转基础命令的秘密(一)

文章目录 🚀Linux基础命令⭐1. 查看目录命令💥2. 切换目录👊3. 创建目录❤️4. 删除目录/文件🚲5. 修改目录/文件🌈6. 拷贝目录/文件 🚀Linux基础命令 ⭐1. 查看目录命令 在Linux中,查看目录的…

C语言⾼位优先与低位优先的不同之处是什么?

一、问题 C语⾔的最⼤特⾊就是可移植性好。根据机器类型的不同,⾼位优先与低位优先也不同。那么,最好的可移植的 C 程序应该同时适⽤这两种类型的计算机。下⾯了解⼀下⾼位优先与低位优先的不同之处。 二、解答 所谓的⾼位优先,就是最低的地…

AUS GLOBAL 荣获 Brokersview 颁奖盛典多项殊荣

2024年1月31日在迪拜 Sheikh Zayed Rd - Trade Centre - Trade Centre 1 举行的 Brokersview 颁奖盛典上,AUS GLOBAL(澳洲环球)再次展现了其在金融行业的卓越实力,并荣获多项殊荣。 AUS GLOBAL 作为一家全球领先的金融服务提供商…

一个交易者的自白:念念不忘的交易,10个日内9个亏

一、新手: 面对爆仓,我像个白痴 我是在2012年开始接触的,这些年里我尝到了残酷失败的滋味,更品尝过胜利带来的喜悦。刚刚接触时很自信,总想着自己有一天一定会变成千万富翁的,用杠杆获取暴利。 在我首次爆仓的时候,我的…

NVIDIA DeepStream全面开发指南

本指南全面介绍了NVIDIA DeepStream SDK,包括其架构、功能、应用开发、部署以及高级特性。DeepStream是一个流分析工具包,支持从多种来源输入视频数据,并利用AI和计算机视觉技术生成环境洞察,适用于从边缘到云的开发和部署。 文章…

构建智慧化居家养老服务体系:以数据驱动实现高效便捷服务

随着社会的快速发展和人口老龄化趋势的加剧,如何为老年人提供高质量、便捷的养老服务成为了一个亟待解决的问题。近年来,民政部 国家数据局关于组织开展基本养老服务综合平台试点的通知,以及广州市人民政府办公厅印发的《广州市居家社区养老服…

什么是BFC

1.什么是BFC BFC即Block Formatting Contexts(块级格式化上下文),是W3C CSS2.1规范中的一个概念。BFC是指浏览器中创建了一个独立的渲染区域,并且拥有一套渲染规则,它决定了其子元素如何定位,以及与其他元…