首页 > 其他分享 >pytorch-tensor属性统计(norm,max,min...)

pytorch-tensor属性统计(norm,max,min...)

时间:2023-07-31 21:57:40浏览次数:36  
标签:... 范式 tensor dim sum torch min norm

statistics
▪ norm (范数)
▪ mean,sum (平均值,求和)
▪ prod (累乘)
▪ max, min, argmin, argmax
▪ kthvalue, topk(第k大)

norm(范式)

这里面有一范式和二范式。
一范式:

\[||x||_1=\sum_k|x_k| \]

二范式:

\[||x||_1=\sqrt{\sum_k{x_k^2}} \]

a.norm(k,dim)
这个dim,可以不填,不填就是整个tensor的范式

a=torch.full([8],1.)
b=a.view(2,4)
c=a.view(2,2,2)
b
# tensor([[1., 1., 1., 1.],
#         [1., 1., 1., 1.]])

c
# tensor([[[1., 1.],
#          [1., 1.]],
# 
#         [[1., 1.],
#          [1., 1.]]])


a.norm(1),b.norm(1),c.norm(1)
# (tensor(8.), tensor(8.), tensor(8.))

a.norm(2),b.norm(2),c.norm(2)
# (tensor(2.8284), tensor(2.8284), tensor(2.8284))

对于a.norm(2,dim)
如果加了维度的话,就是该维度变没有了
比如[2,3,4]
dim=0,就是两个[3,4]对应位置求范式操作
dim=1,就是三个[2,4]对应位置求范式操作
dim=2,就是四个[2,3]对应位置求范式操作

b.norm(1,dim=1)
# tensor([4., 4.])


b.norm(2,dim=1)
# tensor([2., 2.])


b.norm(1,dim=0)
# tensor([2., 2., 2., 2.])



c.norm(1,dim=0)
# tensor([[2., 2.],
#         [2., 2.]])


c.norm(2,dim=0)
# tensor([[1.4142, 1.4142],
#         [1.4142, 1.4142]])

image

t=torch.rand(2,3,4)
t.norm(1,dim=0).shape
# torch.Size([3, 4])


t.norm(1,dim=1).shape
# torch.Size([2, 4])


t.norm(1,dim=2).shape
# torch.Size([2, 3])

image

mean,sum,min,max,prod

a.mean()
torch.mean(a,dim)
均值

a.sum()
torch.sum(a,dim)
求和

a.min()
torch.min(a,dim)
求最小值

a.max()
torch.max(a,dim)

a=torch.arange(8).view(2,4).float()
a
# tensor([[0., 1., 2., 3.],
#         [4., 5., 6., 7.]])
a.min(),a.max(),a.mean(),a.prod()
# (tensor(0.), tensor(7.), tensor(3.5000), tensor(0.))
a.sum()
# tensor(28.)

argmax(),argmin()

a.argmax(dim)或者torch.argmax(a,dim)
如果不加dim的话,默认求整个tensor的最大值所在的位置,但是这个位置是打平之后的位置
加上dim之后就是在该维度上,返回该维度上每一个位置的最大值所在位置

a
# tensor([[0., 1., 2., 3.],
#         [4., 5., 6., 7.]])


a.argmax()
# tensor(7)

这个函数用处比较多的地方是在多分类预测的softmax之后,我们要得到每一个样本最大值所在位置的时候

a=torch.randn(4,10)
a


a.argmax(dim=1)
# tensor([7, 0, 9, 5])
# 这个相当于4个样本,10分类,然后返回的是每个样本的预测值所在位置

这个相当于4个样本,10分类,然后返回的是每个样本的预测值所在位置

Top-K or k-th

▪ .topk

  • Largest

▪ kthvalue

a.topk(k,dim)
返回dim维度上前k大的值
假如a=[4,10],a.topk(3,dim=1),则返回的shape=[4,3],topk(3,dim=0),则返回的shape=[3,10]
这个函数默认前k大,如果想返回前k小的话,就是a.topk(k,dim,largest=False)

a.kthvalue(k,dim)
返回的第k大

image
image

image

compare

▪ >, >=, <, <=, !=, ==
▪ torch.eq(a, b)
▪ torch.equal(a, b)

如果和一个具体的数字向比较话,可以用

a>0,a>=0,a!=0,a==0
或者torch.gt(a,0)

image

如果说想比较两个tensor的数值是否相等的话,可以用

torch.eq(a,b)
返回与a,b相同shape的一个tensor,同一位置中的数值相等的话是True,不相等的话是False

torch.equal(a,b)
只返回一个True或者False

image

标签:...,范式,tensor,dim,sum,torch,min,norm
From: https://www.cnblogs.com/lipu123/p/17593853.html

相关文章

  • 剑指 Offer 30. 包含min函数的栈(简单)
    题目:classMinStack{public:stack<int>st1;//维护原栈stack<int>st2;//维护最小值的栈/**initializeyourdatastructurehere.*/MinStack(){}voidpush(intx){st1.push(x);......
  • 【867】pgAdmin4 无法加载 loading 的问题解决
    ref:LoadingpgAdmin4v7.4...whileopeningpgAdminIhadthesameproblemwheninstallingpgAdminviathepostgresql-15.3-3-windows-x64installer.Solution:uninstallPostgreSQL;reinstallPostgreSQLbutinthecomponentsselection,uncheckPGAdmin;......
  • vue2集成simple-mind-map思维导图,实现在线制作思维导图
    1.使用组件组件源码版本licensesimple-mind-map地址0.6.6MIT@toast-ui/editor地址3.1.5MITv-viewer地址1.6.4MITxlsx地址0.18.5Apache-2.0vue-i18n地址8.27.2MIT2.组件结构(部分)3.截图4.示例项目项目一:gitee......
  • [UNIQUE VISION Programming Contest 2023 Summer(AtCoder Beginner Contest 312) - A
    UNIQUEVISIONProgrammingContest2023Summer(AtCoderBeginnerContest312)-AtCoderA-Chord(atcoder.jp)#include<bits/stdc++.h>#defineendl'\n'usingnamespacestd;intmain(){vector<string>str{"ACE",&qu......
  • 从0开发属于自己的nestjs框架的mini 版 —— 终极篇
    这篇其实是最简单的,就是将前面所实现的ioc,路由整合在一起就可以了话不多说,直接上代码\src\koa-ioc.ts引入相关库importKoafrom"koa";importkoaRouterfrom"koa-router";import{ContainerModule}from"./ioc-module";import{Type}from"./ioc-core.ts"......
  • 从0开发属于自己的nestjs框架的mini 版 —— koa-decorator路由篇
    这篇主要是实现路由注解,用过nestjs的都知道,其路由都是通过注解来实现的,如有控制器@Controller(),@Get()...等等,nestjs底层框架可选是expres或者是Fastify,在这里我选择koa2。话不多说,直接上代码src/koa-decorator.ts引入相关库import"reflect-metadata";importpathfro......
  • MinimumBoundingBox2
    [ABC297F]MinimumBoundingBox2考虑解决一个稍简单的问题。给你一个\(n\timesm\)的矩形棋盘,要在上面放\(k\)个棋子,使得矩形\(4\)条边上都要有至少一个棋子。问方案数。样例输入:222样例输出:2总方案数\(C_{n\timesm}^k\)。发现不好做,我们于是试着求解\(4......
  • 从0开发属于自己的nestjs框架的mini 版- ioc篇
    如今,nodejs的框架也是层出不穷,偏向向底层的有express、koa、Fastify,偏向于上层有阿里的Egg、thinkjs、还有国外的nestjs。在这里我更喜欢nestjs,主要是其用了不同于其他框架的思想,采用分层,AOP(面向切面编程),OOP(面向对象编程)的设计思想。如果想要自己写一个类似的框架,该......
  • centos环境minio安装踩坑指南2023年7月30日
    MinIO的安装踩坑指南环境centos71.安装MinIO官方文档Binary下载,按照官网的路径配置比较快下载miniowgethttps://dl.min.io/server/minio/release/linux-amd64/minio修改minio的权限chmod+xminio移动下载的文件到此文件夹下sudomvminio/usr/local/bin/2.......
  • ./...是什么?
    在Go语言的命令行中,./...是一个特殊的路径模式,它表示当前目录及其所有子目录。这个模式常常用于Go的一些命令,比如gotest,gobuild,goinstall等,以便一次性对当前目录及其所有子目录下的Go文件进行操作。例如,如果你在项目的根目录下运行gotest./...,Go会执行当前目......