【PyTorch】PyTorch之Reduction Ops

2024-01-20 09:20
文章标签 pytorch reduction ops

本文主要是介绍【PyTorch】PyTorch之Reduction Ops,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 前言
  • 一、ARGMAX
  • 二、ARGMIN
  • 三、AMAX和AMIN
  • 四、ALL和ANY
  • 五、MAX和MIN
  • 六、MEAN
  • 七、MEDIAN
  • 八、NORM
  • 九、PROD
  • 十、STD
  • 十一、SUM
  • 十二、UNIQUE
  • 十三、VAR


前言

介绍pytorch的Reduction Ops。

一、ARGMAX

torch.argmax(input, dim, keepdim=False) → LongTensor
Parameters:
input (Tensor) – the input tensor.
dim (int) – the dimension to reduce. If None, the argmax of the flattened input is returned.
keepdim (bool) – whether the output tensor has dim retained or not. Ignored if dim=None.

返回输入张量中所有元素的最大值的索引。
这是 torch.max() 返回的第二个值。
注意:
如果存在多个最大值,则返回第一个最大值的索引。

在这里插入图片描述
在这里插入图片描述

二、ARGMIN

torch.argmin(input, dim=None, keepdim=False) → LongTensor
Parameters:
input (Tensor) – the input tensor.
dim (int) – the dimension to reduce. If None, the argmin of the flattened input is returned.
keepdim (bool) – whether the output tensor has dim retained or not…

返回输入张量中所有元素的最小值的索引。
这是 torch.min() 返回的第二个值。
注意:
如果存在多个最小值,则返回第一个最小值的索引。
在这里插入图片描述

三、AMAX和AMIN

torch.amax(input, dim, keepdim=False, , out=None) → Tensor
torch.amin(input, dim, keepdim=False, , out=None) → Tensor
Parameters:
input (Tensor) – the input tensor.
dim (int or tuple of ints) – the dimension or dimensions to reduce.
keepdim (bool) – whether the output tensor has dim retained or not.
Keyword Arguments:
out (Tensor, optional) – the output tensor.

返回输入张量在给定维度(维度)dim中的每个切片的最大值/最小值。
注意:
max/min 与 amax/amin 之间的区别为:

  • amax/amin 支持在多个维度上进行减少,
  • amax/amin 不返回索引,
  • amax/amin 在相等的值之间均匀分配梯度,而 max(dim)/min(dim) 仅将梯度传播到源张量中的单个索引。

如果 keepdim 为 True,则输出张量在除了维度(维度)dim的位置大小与输入相同。否则,dim 被挤压(参见 torch.squeeze()),导致输出张量的维度减少1(或 len(dim))。

在这里插入图片描述
在这里插入图片描述

四、ALL和ANY

torch.all(input) → Tensor
torch.any(input) → Tensor

all:输入中是否所有的任何元素评估为 True。
any:测试输入中是否有任何元素评估为 True。
此函数匹配 NumPy 的行为,在除 uint8 外的所有支持的 dtype 上返回 bool 类型的输出。对于 uint8,输出的 dtype 本身是 uint8。
在这里插入图片描述
在这里插入图片描述

五、MAX和MIN

**torch.max(input, dim, keepdim=False, , out=None)
torch.min(input, dim, keepdim=False, , out=None)
Parameters:
input (Tensor) – the input tensor.
dim (int) – the dimension to reduce.
keepdim (bool) – whether the output tensor has dim retained or not. Default: False.
Keyword Arguments:
out (tuple, optional) – the result tuple of two output tensors (max, max_indices)

返回一个命名元组 (values, indices),其中 values 是输入张量在给定维度 dim 中每行的最大值。而 indices 是找到的每个最大值的索引位置(argmax)。
如果 keepdim 为 True,则输出张量在除了维度 dim 的位置大小与输入相同。否则,dim 被挤压(参见 torch.squeeze()),导致输出张量的维度比输入少 1。
注意:
如果在缩减的行中存在多个最大值,则返回第一个最大值的索引。
在这里插入图片描述
在这里插入图片描述
torch.min()用法同torch.max()。

六、MEAN

*torch.mean(input, dim, keepdim=False, , dtype=None, out=None) → Tensor
Parameters:
input (Tensor) – the input tensor.
dim (int or tuple of ints) – the dimension or dimensions to reduce.
keepdim (bool) – whether the output tensor has dim retained or not.
Keyword Arguments:
dtype (torch.dtype, optional) – the desired data type of returned tensor. If specified, the input tensor is casted to dtype before the operation is performed. This is useful for preventing data type overflows. Default: None.
out (Tensor, optional) – the output tensor.

返回输入张量在给定维度 dim 中每行的均值。如果 dim 是维度的列表,则对所有维度进行缩减。
如果 keepdim 为 True,则输出张量在除了维度(维度)dim的位置大小与输入相同。否则,dim 被挤压(参见 torch.squeeze()),导致输出张量的维度减少1(或 len(dim))。

torch.nanmean() 计算非nan元素的平均值。

在这里插入图片描述

七、MEDIAN

*torch.median(input, dim=-1, keepdim=False, , out=None)
Parameters:
input (Tensor) – the input tensor.
dim (int) – the dimension to reduce.
keepdim (bool) – whether the output tensor has dim retained or not.
Keyword Arguments:
out ((Tensor, Tensor), optional) – The first tensor will be populated with the median values and the second tensor, which must have dtype long, with their indices in the dimension dim of input.

返回一个命名元组 (values, indices),其中 values 包含输入在维度 dim 中每行的中位数,而 indices 包含在维度 dim 中找到的中位数的索引。
默认情况下,dim 是输入张量的最后一个维度。
如果 keepdim 为 True,则输出张量在除了维度 dim 的位置大小与输入相同。否则,dim 被挤压(参见 torch.squeeze()),导致输出张量的维度比输入少 1。
注意:
对于在维度 dim 中元素数为偶数的输入张量,中位数不是唯一的。在这种情况下,返回两个中位数中较小的一个。要计算输入中两个中位数的平均值,请使用 torch.quantile() 并将 q 设为 0.5。
警告:
indices 不一定包含找到的每个中位数值的第一个出现,除非它是唯一的。确切的实现细节是特定于设备的。一般而言,不要期望在 CPU 和 GPU 上运行时获得相同的结果。出于同样的原因,不要期望梯度是确定性的。
在这里插入图片描述
torch.nanmedian() 返回输入数据的中值,忽略NAN值

八、NORM

九、PROD

*torch.prod(input, dim, keepdim=False, , dtype=None) → Tensor
Parameters:
input (Tensor) – the input tensor.
dim (int) – the dimension to reduce.
keepdim (bool) – whether the output tensor has dim retained or not.
Keyword Arguments:
dtype (torch.dtype, optional) – the desired data type of returned tensor. If specified, the input tensor is casted to dtype before the operation is performed. This is useful for preventing data type overflows. Default: None.

返回给定维度dim中输入张量的每一行的乘积。

在这里插入图片描述

十、STD

*torch.std(input, dim=None, , correction=1, keepdim=False, out=None) → Tensor
Parameters:
input (Tensor) – the input tensor.
dim (int or tuple of ints) – the dimension or dimensions to reduce.
Keyword Arguments:
correction (int)
difference between the sample size and sample degrees of freedom. Defaults to Bessel’s correction, correction=1.
keepdim (bool) – whether the output tensor has dim retained or not.
out (Tensor, optional) – the output tensor.

计算沿指定维度 dim 的标准差。dim 可以是单个维度、维度列表或 None(在所有维度上进行缩减)。
标准差(σ)的计算方式是对每个维度的元素进行以下步骤:

  • 计算该维度上的平均值(μ)。
  • 对每个元素,计算其与平均值的差值,然后取平方。
  • 对所有差值的平方求和。
  • 将总和除以元素的数量。
  • 取结果的平方根,得到标准差。

在这里插入图片描述

如果 keepdim 为 True,则输出张量在除了维度 dim 的位置大小与输入相同。否则,dim 被挤压(参见 torch.squeeze()),导致输出张量的维度比输入少 1(或 len(dim))。

在这里插入图片描述

十一、SUM

**torch.sum(input, dim, keepdim=False, , dtype=None) → Tensor
Parameters:
input (Tensor) – the input tensor.
dim (int or tuple of ints, optional) – the dimension or dimensions to reduce. If None, all dimensions are reduced.
keepdim (bool) – whether the output tensor has dim retained or not.
Keyword Arguments:
dtype (torch.dtype, optional) – the desired data type of returned tensor. If specified, the input tensor is casted to dtype before the operation is performed. This is useful for preventing data type overflows. Default: None.

返回给定维度dim中输入张量的每行之和。如果dim是一个维度列表,则对所有维度进行约简。

在这里插入图片描述
torch.nansum() 返回所有元素的和,将非数字(nan)视为零。

十二、UNIQUE

torch.unique(input, sorted=True, return_inverse=False, return_counts=False, dim=None) → Tuple[Tensor, Tensor, Tensor]
Parameters:
input (Tensor) – the input tensor
sorted (bool) – Whether to sort the unique elements in ascending order before returning as output.
return_inverse (bool) – Whether to also return the indices for where elements in the original input ended up in the returned unique list.
return_counts (bool) – Whether to also return the counts for each unique element.
dim (int, optional) – the dimension to operate upon. If None, the unique of the flattened input is returned. Otherwise, each of the tensors indexed by the given dimension is treated as one of the elements to apply the unique operation upon. See examples for more details. Default: None
Returns:
A tensor or a tuple of tensors containing
output (Tensor): the output list of unique scalar elements.
inverse_indices (Tensor): (optional) if return_inverse is True, there will be an additional returned tensor (same shape as input) representing the indices for where elements in the original input map to in the output; otherwise, this function will only return a single tensor.
counts (Tensor): (optional) if return_counts is True, there will be an additional returned tensor (same shape as output or output.size(dim), if dim was specified) representing the number of occurrences for each unique value or tensor.
Return type:
(Tensor, Tensor (optional), Tensor (optional))

返回输入张量的唯一元素。
注意:
此函数与 torch.unique_consecutive() 不同,因为此函数还会消除非连续的重复值。
当前在 CUDA 实现和 CPU 实现中,当指定 dim 时,torch.unique 无论 sort 参数如何,都会在开始时对张量进行排序。排序可能会很慢,因此如果您的输入张量已经排序,建议使用 torch.unique_consecutive(),它避免了排序操作。

在这里插入图片描述
在这里插入图片描述

十三、VAR

*torch.var(input, dim=None, , correction=1, keepdim=False, out=None) → Tensor
Parameters:
input (Tensor) – the input tensor.
dim (int or tuple of ints, optional) – the dimension or dimensions to reduce. If None, all dimensions are reduced.
Keyword Arguments:
correction (int)
difference between the sample size and sample degrees of freedom. Defaults to Bessel’s correction, correction=1.
keepdim (bool) – whether the output tensor has dim retained or not.
out (Tensor, optional) – the output tensor.

计算沿指定维度 dim 的方差。dim 可以是单个维度、维度列表或 None(在所有维度上进行缩减)。计算公式如下:
在这里插入图片描述
在这里插入图片描述

这篇关于【PyTorch】PyTorch之Reduction Ops的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


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

相关文章

Pytorch介绍与安装过程

《Pytorch介绍与安装过程》PyTorch因其直观的设计、卓越的灵活性以及强大的动态计算图功能,迅速在学术界和工业界获得了广泛认可,成为当前深度学习研究和开发的主流工具之一,本文给大家介绍Pyto... 目录1、Pytorch介绍1.1、核心理念1.2、核心组件与功能1.3、适用场景与优势总结1.4、优

conda安装GPU版pytorch默认却是cpu版本

《conda安装GPU版pytorch默认却是cpu版本》本文主要介绍了遇到Conda安装PyTorchGPU版本却默认安装CPU的问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的... 目录一、问题描述二、网上解决方案罗列【此节为反面方案罗列!!!】三、发现的根本原因[独家]3.1 p

PyTorch中cdist和sum函数使用示例详解

《PyTorch中cdist和sum函数使用示例详解》torch.cdist是PyTorch中用于计算**两个张量之间的成对距离(pairwisedistance)**的函数,常用于点云处理、图神经网... 目录基本语法输出示例1. 简单的 2D 欧几里得距离2. 批量形式(3D Tensor)3. 使用不

PyTorch高级特性与性能优化方式

《PyTorch高级特性与性能优化方式》:本文主要介绍PyTorch高级特性与性能优化方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、自动化机制1.自动微分机制2.动态计算图二、性能优化1.内存管理2.GPU加速3.多GPU训练三、分布式训练1.分布式数据

判断PyTorch是GPU版还是CPU版的方法小结

《判断PyTorch是GPU版还是CPU版的方法小结》PyTorch作为当前最流行的深度学习框架之一,支持在CPU和GPU(NVIDIACUDA)上运行,所以对于深度学习开发者来说,正确识别PyTor... 目录前言为什么需要区分GPU和CPU版本?性能差异硬件要求如何检查PyTorch版本?方法1:使用命

pytorch自动求梯度autograd的实现

《pytorch自动求梯度autograd的实现》autograd是一个自动微分引擎,它可以自动计算张量的梯度,本文主要介绍了pytorch自动求梯度autograd的实现,具有一定的参考价值,感兴趣... autograd是pytorch构建神经网络的核心。在 PyTorch 中,结合以下代码例子,当你

在PyCharm中安装PyTorch、torchvision和OpenCV详解

《在PyCharm中安装PyTorch、torchvision和OpenCV详解》:本文主要介绍在PyCharm中安装PyTorch、torchvision和OpenCV方式,具有很好的参考价值,... 目录PyCharm安装PyTorch、torchvision和OpenCV安装python安装PyTor

pytorch之torch.flatten()和torch.nn.Flatten()的用法

《pytorch之torch.flatten()和torch.nn.Flatten()的用法》:本文主要介绍pytorch之torch.flatten()和torch.nn.Flatten()的用... 目录torch.flatten()和torch.nn.Flatten()的用法下面举例说明总结torch

使用PyTorch实现手写数字识别功能

《使用PyTorch实现手写数字识别功能》在人工智能的世界里,计算机视觉是最具魅力的领域之一,通过PyTorch这一强大的深度学习框架,我们将在经典的MNIST数据集上,见证一个神经网络从零开始学会识... 目录当计算机学会“看”数字搭建开发环境MNIST数据集解析1. 认识手写数字数据库2. 数据预处理的

Pytorch微调BERT实现命名实体识别

《Pytorch微调BERT实现命名实体识别》命名实体识别(NER)是自然语言处理(NLP)中的一项关键任务,它涉及识别和分类文本中的关键实体,BERT是一种强大的语言表示模型,在各种NLP任务中显著... 目录环境准备加载预训练BERT模型准备数据集标记与对齐微调 BERT最后总结环境准备在继续之前,确