Pytorch torch.norm函数详解用法

torch.norm参数定义

torch版本1.6

def norm(input, p="fro", dim=None, keepdim=False, out=None, dtype=None)

input

input (Tensor): the input tensor 输入为tensor

p

 p (int, float, inf, -inf, 'fro', 'nuc', optional): the order of norm. Default: ``'fro'``The following norms can be calculated:=====  ============================  ==========================ord    matrix norm                   vector norm=====  ============================  ==========================None   Frobenius norm                2-norm'fro'  Frobenius norm                --'nuc'  nuclear norm                  --Other  as vec norm when dim is None  sum(abs(x)**ord)**(1./ord)=====  ============================  ==========================
dim是matrix norm

如果inputmatrix norm,也就是维度大于等于2维,则
P值默认为fro,Frobenius norm可认为是与计算向量的欧氏距离类似
有时候为了比较真实的矩阵和估计的矩阵值之间的误差
或者说比较真实矩阵和估计矩阵之间的相似性,我们可以采用 Frobenius 范数。

在这里插入图片描述计算矩阵的Frobenius norm (Frobenius 范数),就是矩阵A各项元素的绝对值平方的总和再开根号

p='nuc’时,是求核范数,核范数是矩阵奇异值的和。核范数的具体定义为
在这里插入图片描述
在这里插入图片描述
例子来源:机器学习 | Schatten范数 - 知乎

p=other时,当作vec norm计算,p为int的形式,则是如下形式:
在这里插入图片描述
详细解释:torch.norm()函数的用法 - 知乎

dim是vector norm

p=none时,为L2 Norm,也是属于P范数一种,pytorch调用的函数是F.normalize,pytorch官网定义如下:,

dim

dim (int, 2-tuple of ints, 2-list of ints, optional): If it is an int,vector norm will be calculated, if it is 2-tuple of ints, matrix normwill be calculated. If the value is None, matrix norm will be calculatedwhen the input tensor only has two dimensions, vector norm will becalculated when the input tensor only has one dimension. If the inputtensor has more than two dimensions, the vector norm will be applied tolast dimension.

如果dimNone, 当input的维度只有2维时使用matrix norm,当input的维度只有1维时使用vector norm,当input的维度超过2维时,只在最后一维上使用vector norm
如果dim不为None,1.dim是int类型,则使用vector norm,如果dim是2-tuple int类型,则使用matrix norm.

Keepdim

keepdim (bool, optional): whether the output tensors have :attr:`dim`retained or not. Ignored if :attr:`dim` = ``None`` and:attr:`out` = ``None``. Default: ``False``

keepdim为True,则保留dim指定的维度,如果为False,则不保留。默认为False

out

out (Tensor, optional): the output tensor. Ignored if:attr:`dim` = ``None`` and :attr:`out` = ``None``.

输出为tensor,如果dim = None and out = None.则不输出

dtype

dtype (:class:`torch.dtype`, optional): the desired data type ofreturned tensor. If specified, the input tensor is casted to:attr:'dtype' while performing the operation. Default: None.

指定输出的数据类型

示例

>>> import torch
>>> a = torch.arange(9, dtype= torch.float) - 4
>>> a
tensor([-4., -3., -2., -1.,  0.,  1.,  2.,  3.,  4.])
>>> b = a.reshape((3, 3))
>>> b
tensor([[-4., -3., -2.],[-1.,  0.,  1.],[ 2.,  3.,  4.]])
>>> torch.norm(a)
>tensor(7.7460)
>>>计算流程: math.sqrt((4*4 + 3*3 + 2*2 + 1*1 +  -4*-4 + -3*-3 + -2*-2 + -1*-1))
7.7460
>>> torch.norm(b) # 默认计算F范数
tensor(7.7460)

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

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

相关文章

深度优化数据库性能:Linux 内核参数调整解析

点击上方蓝字关注我 数据库服务器性能的优化是每个IT团队关注的焦点之一。除了数据库引擎的优化之外,合理调整操作系统的内核参数也是提高数据库性能的关键。本文将解析一些常见的 Linux 内核参数,以及它们在数据库服务器优化中的作用和建议的值。 1. 参…

FastJsonAPI

maven项目 pom.xml <dependencies><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>2.0.26</version></dependency><dependency><groupId>junit</groupId>&l…

Find My数据线|苹果Find My技术与数据线结合,智能防丢,全球定位

数据线是用来连接移动设备和电脑的&#xff0c;来达到数据传递或通信目的。通俗点说&#xff0c;就是连接电脑与移动设备用来传送视频、铃声、图片等文件的通路工具。现在&#xff0c;随着电子行业日新月异的发展&#xff0c;数据线已经成为了我们生活中不可或缺的部分&#xf…

竞赛选题 深度学习驾驶行为状态检测系统(疲劳 抽烟 喝水 玩手机) - opencv python

文章目录 1 前言1 课题背景2 相关技术2.1 Dlib人脸识别库2.2 疲劳检测算法2.3 YOLOV5算法 3 效果展示3.1 眨眼3.2 打哈欠3.3 使用手机检测3.4 抽烟检测3.5 喝水检测 4 最后 1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 基于深度学习的驾…

《C语言程序设计 谭浩强 第4版》:使用结构体类型处理组合数据 - 用户自定义数据类型

一、定义和使用结构体变量 1、自己建立结构体类型 C 语言允许用户自己定义由不同类型数据组成的组合型的数据结构&#xff0c;它称为 结构体 一般形式&#xff1a; struct 结构体名{成员表列; } 结构体类型的名字是由一个关键字 struct 和结构体名二者组合而成的 结构…

【mysql】2006 - Server has gone away

执行了一组插入语句 提示&#xff1a;2006 - Server has gone away&#xff1b; 2006-服务器已经消失&#xff1b; 消失去哪里了&#xff0c;被黑洞吞没了吗&#xff1f;&#xff01;&#xff01;&#xff01; 网络问题 网络不稳定&#xff1f;断网了&#xff1f;检查网络连…

可逆矩阵的性质

如果矩阵A可逆&#xff0c;那么它的逆矩阵也可逆&#xff0c;并且如果矩阵A可逆&#xff0c;假设是一个不为0的数&#xff0c;那么也可逆&#xff0c;并且如果矩阵A和都可逆&#xff0c;而且它们的阶数也相同&#xff0c;那么它们的乘积也是可逆的&#xff0c;并且如果矩阵A可逆…

非 dict 字典类型的处理

在Python的requests库中&#xff0c;使用data参数发送POST请求时&#xff0c;如果传入的数据对象不是直接继承自dict的字典类型&#xff0c;就会抛出TypeError异常。 Python的requests库是一个广泛用于HTTP请求的库&#xff0c;它提供了丰富的功能来发送和处理HTTP请求。其中&…

【开源】基于JAVA的高校宿舍调配管理系统

项目编号&#xff1a; S 051 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S051&#xff0c;文末获取源码。} 项目编号&#xff1a;S051&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能需求2.1 学生端2.2 宿管2.3 老师端 三、系统…

极光笔记 | EngageLab Push的多数据中心接入指南

01背景 作为一个面向全球的消息推送服务平台&#xff0c;我们一直致力于给全球用户提供安全、可靠、高效的消息推送服务&#xff0c;因此我们意识到在不同洲建立数据中心的重要性。这样做将有助于提高我们的服务可用性、降低延迟并保护用户数据的安全性。 第一&#xff0c;通过…

扩散模型实战(十):Stable Diffusion文本条件生成图像大模型

推荐阅读列表&#xff1a; 扩散模型实战&#xff08;一&#xff09;&#xff1a;基本原理介绍 扩散模型实战&#xff08;二&#xff09;&#xff1a;扩散模型的发展 扩散模型实战&#xff08;三&#xff09;&#xff1a;扩散模型的应用 扩散模型实战&#xff08;四&#xff…

Flume学习笔记(2)—— Flume进阶

Flume进阶 Flume 事务 事务处理流程如下&#xff1a; Put doPut&#xff1a;将批数据先写入临时缓冲区putListdoCommit&#xff1a;检查channel内存队列是否足够合并。doRollback&#xff1a;channel内存队列空间不足&#xff0c;回滚数据 Take doTake&#xff1a;将数据取…