Pytorch-属性统计
引言
本篇介绍Pytorch属性统计的几种方式。
统计属性
求值或位置
- norm
- mean sum
- prod
- max, min, argmin, argmax
- kthvalue, topk
norm
norm 与 normalize
- norm指的是范数,并不是normalize。
- normalize是归一化,例如 batch_norm。
matrix norm 与 vector norn
要更好的理解范数,就要从函数、几何与矩阵的角度去理解。
我们都知道,函数与几何图形往往是有对应的关系,这个很好想象,特别是在三维以下的空间内,函数是几何图像的数学概括,而几何图像是函数的高度形象化,比如一个函数对应几何空间上若干点组成的图形。
但当函数与几何超出三维空间时,就难以获得较好的想象,于是就有了映射的概念,映射表达的就是一个集合通过某种关系转为另外一个集合。通常数学书是先说映射,然后再讨论函数,这是因为函数是映射的一个特例。
为了更好的在数学上表达这种映射关系,(这里特指线性关系)于是就引进了矩阵。这里的矩阵就是表征上述空间映射的线性关系。而通过向量来表示上述映射中所说的这个集合,而我们通常所说的基,就是这个集合的最一般关系。于是,我们可以这样理解,一个集合(向量),通过一种映射关系(矩阵),得到另外一个几何(另外一个向量)。
向量的范数,就是表示这个原有集合的大小。
矩阵的范数,就是表示这个变化过程的大小的一个度量。
总结起来一句话,范数(norm),是具有“长度”概念的函数。
![Vector Norm and Matrix Norm](Pytorch-属性统计/Vector Norm and Matrix Norm.jpg)
推荐阅读 向量范数与矩阵范数, 机器学习下的各种norm到底是个什么东西?, 机器学习中的范数规则化之(一)L0、L1与L2范数.
在做 gradient clipping 的时候,需要查看weight 的 gradient norm 如果太大的话就需要做 gradient clipping(使用clamp)
norm-p
1-Norm就是所有元素的绝对值之和
2-Norm就是所有元素的平方和并开根号
不加dim参数,默认所有维度
从shape出发,加入dim后,这个dim就会消失(做Norm)
1 |
In[3]: a = torch.full([8],1) |
mean,sum,min,max,prod
max() 求最大的值
min()
求最小的值mean()
求平均值 mean = sum / sizeprod()
累乘sum()
求和argmax()
返回最大值元素的索引argmin()
返回最大值元素的索引argmax(dim=l)
求l
维中,最大元素的位置,这样的话这一维将消失。
note:以上这些,如果不加参数,会先打平,在计算,所以对于 argmax 和 argmin来说得到的是打平后的索引。
1 |
In[18]: a = torch.arange(8).view(2,4).float() # 假设我们生成一组 gradient |
dim,keepdim
- 使用max(dim=) 函数配上dim参数,可以很好的返回最大值与该值的位置
- argmax 其实是 max 的一部分(位置)
- keepdim=True 设置这个参数后,维度得以保留,与原来的维度是一样的。
1 |
In[33]: a # # 假设生成4张手写体数字照片的概率(发生过偏移) |
Top-k or k-th
topk
由于max只能找出一个最大,如果想找最大的几个就做不到了。
top-k 比max提供更多的信息,适用于特定的场合。
top-k 指的是返回概率最大的的 k 组数据以及位置
largest=False 求概率最小的 k 组
例如:对于一张照片,他的概率是[0.2, 0.3, 0.1, 0.2, 0.1, 0.1],使用topk(3) 会得到 概率最大的三个数[0.3, 0.2, 0.2] 以及位置[1, 0, 3]
1 |
In[33]: a |
kthvalue
- kthvalue(i, dim=j) 求 j 维上,第 i 小的元素以及位置。
- keepdim=True 会保持维度
1 |
In[36]: a.kthvalue(8,dim=1) # 求1维,第8小(第3大)( 0-9,第10小=第1大) |
compare
>, >=, <, <=, !=, ==
- 进行比较后,返回的是一个 bytetensor,不再是floattensor,由于pytorch中所有的类型都是数值,没有True or False ,为了表达使用整型的0,1
- torch.eq(a,b) 判断每一个元素是否相等,返回 bytetensor
- torch.equal(a,b) 返回True or False
1 |
In[39]: a>0 |
下表是numpy与pytorch比较操作的方法,还是推荐 符号 > < ..
Numpy | PyTorch |
---|---|
np.less | x.lt |
np.less_equal | x.le |
np.less_equal | x.le |
np.less_equal | x.le |
np.equal | x.eq |
np.not_equal | x.ne |
Pytorch-属性统计的更多相关文章
- JS中对象按属性排序(冒泡排序)
在实际工作经常会出现这样一个问题:后台返回一个数组中有i个json数据,需要我们根据json中某一项进行数组的排序. 例如返回的数据结构大概是这样: { result:[ {id:,name:'中国银 ...
- 转: JSTL SQL标签库 使用
SQL标签库 JSTL提供了与数据库相关操作的标签,可以直接从页面上实现数据库操作的功能,在开发小型网站是可以很方便的实现数据的读取和操作.本章将详细介绍这些标签的功能和使用方法. SQL标签库从功能 ...
- 决策树算法(1)含java源代码
信息熵:变量的不确定性越大,熵越大.熵可用下面的公式描述:-(p1*logp1+p2*logp2+...+pn*logpn)pi表示事件i发生的概率ID3:GAIN(A)=INFO(D)-INFO_A ...
- static,静态关键字的详解
一,使用static声明属性 class Person{ // 定义Person类 String name ; // 定义name属性,暂时不封装 int age ; // 定义age属性,暂时不封装 ...
- JSEL 表达式
JSTL标签库的使用是为类弥补html表的不足,规范自定义标签的使用而诞生的.在告别modle1模式开发应用程序后,人们开始注重软件的分层设计,不希望在jsp页面中出现java逻辑代码,同时也由于自定 ...
- java实现的Trie树数据结构
近期在学习的时候,常常看到使用Trie树数据结构来解决这个问题.比方" 有一个1G大小的一个文件.里面每一行是一个词.词的大小不超过16字节,内存大小限制是1M. 返回频数最高的100个词. ...
- Wireshark网络抓包(四)——工具
一.基本信息统计工具 1)捕获文件属性(Summary) 1. File:了解抓包文件的各种属性,例如抓包文件的名称.路径.文件所含数据包的规模等信息 2. Time:获悉抓包的开始.结束和持续时间 ...
- 【读书笔记】【深入理解ES6】#3-函数
函数形参的默认值 ES6中的默认参数值 function makeRequest(url, timeout = 2000, callback = function() {}) { } 可以为任意参数指 ...
- python 要掌握面向对象,你得会做这些题吗?
1,面向对象三大特性,各有什么用处,说说你的理解. 继承:解决代码重用问题 多态:多态性,可以在不考虑对象类型的情况下而直接使用对象 封装:明确的区分内外,控制外部对隐藏属性的操作行为,隔离复杂度 2 ...
随机推荐
- 单元测试框架之unittest(一)
一.单元测试的含义 unittest单元测试框架的设计灵感来源于Junit(Java语言的单元测试框架),它与其他语言的单元测试框架风格相类似,支持自动化测试.为测试共享setUp和shutDown. ...
- Eclipse中给jar包导入JavaDoc注释文档的方法
原文链接:http://www.apkbus.com/android-124056-1-1.html 第一步:将jar加入到Referenced Libraries 右键点击jar --> 选择 ...
- spark为什么比hadoop的mr要快?
1.前言 Spark是基于内存的计算,而Hadoop是基于磁盘的计算:Spark是一种内存计算技术. 但是事实上,不光Spark是内存计算,Hadoop其实也是内存计算. Spark和Hadoop的根 ...
- 用vs2013开启一个C拖控件的项目
visual studio作为一款集成开发环境备受青睐,笔者尤其喜爱它的拖控件功能,程序员应该追求业务逻辑和实际功能的优化,而不是把时间消耗在编写窗体和按钮上 笔者曾翻阅中关村图书大厦,西单图书大厦, ...
- Java8-Stream-No.07
import java.util.ArrayList; import java.util.List; import java.util.stream.IntStream; public class S ...
- 洛谷P1372 又是毕业季I【数论】
题目:https://www.luogu.org/problemnew/show/P1372 题意: 在1~n之中找k个数,使得他们的最大公因数最大. 思路: 假设ans是答案,说明选择的k个数分别是 ...
- Gson/Jackson/FastJson工具类
import java.util.ArrayList; import java.util.List; import java.util.Map; import com.google.gson.Gson ...
- 3、docker常用命令:help、镜像命令、容器命令
1.帮助命令 1.docker version 2.docker info 3.重点掌握:docker --help 2.镜像命令 1.docker,镜像,容器关系 2.docker images ( ...
- MacOS使用zsh & oh-my-zsh
shell 俗称壳,c 语言编写的命令解析器程序,是用户使用 linux 的桥梁. 目前常用的 Linux 系统和 OS X 系统的默认 Shell 都是 bash. zsh 和 bash 相似,且 ...
- http communication process