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.rhkb.cn/news/335357.html

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

相关文章

为师妹写的《Java并发编程之线程池十八问》被表扬啦!

写在开头 之前给一个大四正在找工作的学妹发了自己总结的关于Java并发中线程池的面试题集,总共18题,将之取名为《Java并发编程之线程池十八问》,今天聊天时受了学妹的夸赞,心里很开心,毕竟自己整理的东西对别人起到了一点帮助,记录一下! Java并发编程之线程池十八问 经过…

数据分析必备:一步步教你如何用Pandas做数据分析(11)

1、Pandas 自定义选项 Pandas 自定义选项操作实例 Pandas因为提供了API来自定义行为,所以被广泛使用。 自定义API中有五个相关功如下: get_option() set_option() reset_option() describe_option() option_context() 下面我们一起了解下这些方法。 1.…

Centos安装,window、ubuntus双系统基础上安装Centos安装

文章目录 前言一、准备工作二、开始安装1、2、首先选择DATE&TIME2、选择最小安装3、 选择安装位置 总结 前言 因工作需要,我需要在工控机上额外装Centos7系统,不过我是装在机械硬盘上了不知道对性能是否有影响,若有影响,后面…

Python基于PyQt6制作GUI界面——按钮

示例对应的制作的 ui文件 界面如下所示。 <?xml version"1.0" encoding"UTF-8"?> <ui version"4.0"><class>Form</class><widget class"QWidget" name"Form"><property name"geom…

开源与闭源AI模型的对决:数据隐私、商业应用与社区参与

引言 在人工智能&#xff08;AI&#xff09;领域&#xff0c;模型的发展路径主要分为“开源”和“闭源”两条。这两种模型在数据隐私保护、商业应用以及社区参与与合作方面各有优劣&#xff0c;是创业公司、技术巨头和开发者们必须仔细权衡的重要选择。那么&#xff0c;面对这些…

数据大屏方案 : 实现数据可视化的关键一环_光点科技

在数字时代的浪潮中&#xff0c;数据已经成为企业决策和操作的重要基础。因此&#xff0c;“数据大屏方案”逐渐成为业界关注的焦点。这类方案通过将复杂的数据集合以直观的形式展现出来&#xff0c;帮助决策者快速把握信息&#xff0c;做出更加明智的决策。 数据大屏的定义及作…

运用HTML、CSS设计Web网页——“西式甜品网”图例及代码

目录 一、效果展示图 二、设计分析 1.整体效果分析 2.头部header模块效果分析 3.导航及banner模块效果分析 4.分类classify模块效果分析 5.产品展示show模块效果分析 6.版权banquan模块效果分析 三、HTML、CSS代码分模块展示 1. 头部header模块代码 2.导航及bann…

04_前端三大件JS

文章目录 JavaScript1.JS的组成部分2.JS引入2.1 直接在head中通过一对script标签定义脚本代码2.2创建JS函数池文件&#xff0c;所有html文件共享调用 3.JS的数据类型和运算符4.分支结构5.循环结构6.JS函数的声明7.JS中自定义对象8.JS_JSON在客户端使用8.1JSON串格式8.2JSON在前…

在outlook的邮件中插入HTML;HTML模板获取

本文介绍如何在outlook发送邮件时&#xff0c;在邮件中插入HTML&#xff0c;此HTML可以从获取模板自行进行修改。 文章目录 一、下载HTML模板&#xff08;或自己制作好HTML文件&#xff09;二、outlook新增宏三、新建邮件&#xff0c;插入HTML 一、下载HTML模板&#xff08;或自…

Python--面向对象

面向对象⭐⭐ 1. 面向对象和面向过程思想 面向对象和面向过程都是一种编程思想,就是解决问题的思路 面向过程&#xff1a;POP(Procedure Oriented Programming)面向过程语言代表是c语言面向对象&#xff1a;OOP(Object Oriented Programming)常见的面向对象语言包括:java c g…

Pi 母公司将开发情感 AI 商业机器人;Meta 科学家:Sora 不是视频生成唯一方向丨RTE 开发者日报 Vol.214

开发者朋友们大家好&#xff1a; 这里是 「RTE 开发者日报」 &#xff0c;每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE&#xff08;Real-Time Engagement&#xff09; 领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「…

下一代 CI/CD:利用 Tekton 和 ArgoCD 实现云原生自动化

一、回顾目标 背景&#xff1a; ​ 部门业务上云&#xff0c;之前服务采用传统的部署方式&#xff0c;这种方式简单&#xff0c;但是不能为应用程序定义资源使用边界&#xff0c;很难合理地分配计算资源&#xff0c;而且程序之间容易产生影响。随着互联网时代的到来&#xff…

阿里云和AWS的CDN产品对比分析

在现代互联网时代,内容分发网络(CDN)已成为确保网站和应用程序高性能和可用性的关键基础设施。作为两家领先的云服务提供商,阿里云和Amazon Web Services(AWS)都提供了成熟的CDN解决方案,帮助企业优化网络传输和提升用户体验。我们九河云一直致力于阿里云和AWS云相关业务&#…

CSS中的Flex布局

目录 一.什么是Flex布局 二.Flex布局使用 2.1Flex使用语法 2.2基本概念 三.容器的属性 3.1所有属性概述 3.2flex-direction 3.3flex-wrap 3.4flex-flow 3.5justify-content 3.6align-items 3.7align-content 四.项目(子元素)的属性 4.1所有属性概述 4.2order 4…

<滑动窗口> 长度最小的子数组

题目链接&#xff1a;209. 长度最小的子数组 - 力扣&#xff08;LeetCode&#xff09; 题目分析 由暴力枚举引申到滑动窗口的画图分析过程 优化版本&#xff08;滑动窗口&#xff09; 滑动窗口的使用场景&#xff1a;单调性&#xff08;一定是递增或递减的情况&#xff09; …

Linux DHCP server 配置

参考&#xff1a;linux dhcp配置多vlan ip_linux 接口vlan-CSDN博客 配置静态IP地址&#xff1a; 给固定的MAC地址分配指定的IP地址&#xff0c;固定的IP地址不必包含在指定的IP池中&#xff0c;如果包含在IP地址池中&#xff0c;固定的IP地址会从IP地址池中移除 配置方法&…

YOLOV10阅读总结

GitHub - THU-MIG/yolov10: YOLOv10: Real-Time End-to-End Object Detection YOLOv10 - Ultralytics YOLO Docs https://arxiv.org/pdf/2405.14458 论文地址 最近yolo又出了个yolov10了&#xff0c;不得不感慨CV是真卷&#xff0c;毕竟yolov9也才没多久。记录一下阅读笔记。…

基于Java实现的图书管理系统

前言&#xff1a;该图书管理系统实现了查找、添加、删除、显示、借阅、归还等功能&#xff0c;分为两个用户群体&#xff1a;管理者和普通用户。使用了类与对象&#xff0c;封装继承多态&#xff0c;抽象类和接口等Java基础知识。 一.思路 面向对象三部曲&#xff1a;找对象&…

西湖大学提出AIGC检测框架,精准识别AI撰写的文稿

近年来人工智能技术突飞猛进&#xff0c;尤其是大语言模型的出现&#xff0c;让AI具备了创作文章、小说、剧本等内容的能力。 AI代写&#xff0c;已经逃不过老师、编辑、审稿人的火眼金睛了。但让AI仅改写部分片段&#xff0c;就安全了么&#xff1f; 针对检测AI改写的片段&a…

整理了六个正规靠谱的兼职赚钱软件,适合普通人做的兼职副业~

​随着互联网时代的到来&#xff0c;越来越多的人选择通过互联网赚钱。在这篇文章中&#xff0c;我们将探讨一些可以在网上长期赚钱的方法。 在网络上面其实有很多的赚钱方法&#xff0c;尽管方法很多&#xff0c;但是对于一些网络新手&#xff0c;刚进入互联网圈子不久的伙伴…