Pytorch:Tensor的统计属性【norm:范数】、【mean、sum】【prod:累乘】【argmin、argmax:最值索引】【keepdim】【kthvalue:第k小的元素、topk】
范数1:所有元素的绝对值的求和
范数2:所有元素的绝对值的平方和的开方
max():矩阵中的最大值以及相应的index
min():矩阵中的最小值以及相应的index
mean():平均值
prod():累乘
sum():求和
argmax():返回最大值的index
argmin():返回最小值的index
argmax与argmin不带参数的话,会将矩阵先打平之后再寻找最值的index,这样找到的index一定只是一维的,而不是打平之前的index
argmax(dim=1)来指定进行比较的方向
一、norm:范数
范数1:所有元素的绝对值的求和
范数2:所有元素的绝对值的平方和的开方
a = torch.full([8],1)
b = a.view(2,4)
c = a.view(2,2,2)a.norm(1),b.norm(1),c.norm(1)
#都是tensor(8)a.norm(2),b.norm(2),c.norm(2)
#都是tensor(2.8284) 根号8
在指定的维数上面进行norm的查看,取哪个维度的范数,该维度就会被消掉。
a = torch.full([8],1)
b = a.view(2,4)
c = a.view(2,2,2)b.norm(1,dim=1)
#tensor([4,4]) 一共两行 按行取
二、mean、sum、prod、max、min、argmin、argmax
argmin、argmax:不加参数时,将矩阵打平为一维,然后取最小值、最大值的索引;
import torcha = torch.randn(4, 6)print('a.shape = ', a.shape)
print('a = ', a)a_argmax = a.argmax()
a_argmax_dim_0 = a.argmax(dim=0)
a_argmax_dim_1 = a.argmax(dim=1)print('\na_argmax = ', a_argmax)
print('a_argmax_dim_0 = ', a_argmax_dim_0)
print('a_argmax_dim_1 = ', a_argmax_dim_1)
打印结果:
a.shape = torch.Size([4, 6])
a = tensor([[ 0.4317, -0.9791, -1.8569, 0.9546, 1.5674, -0.7068],[ 0.4386, -1.5702, 0.9274, 0.9188, -1.3072, -1.2542],[ 0.7009, -0.1240, 1.0909, 0.5051, 1.4061, -0.7690],[-0.7982, 0.3734, 0.9044, 0.8111, -0.1462, 0.0558]])a_argmax = tensor(4)
a_argmax_dim_0 = tensor([2, 3, 2, 0, 0, 3])
a_argmax_dim_1 = tensor([4, 2, 4, 2])
三、keepdim
四、topk、kthvalue
1、topk:前k个最值
import torcha = torch.randn(4, 6)print('a.shape = ', a.shape)
print('a = ', a)a_topk = a.topk(3, dim=1)
print('\na_topk = ', a_topk)
打印结果:
a.shape = torch.Size([4, 6])
a = tensor([[ 0.5713, -0.8378, -0.9350, 1.4258, 1.0426, -1.3174],[-1.5093, -0.9687, 1.1797, 0.9376, -0.2584, 0.3872],[ 1.7028, -1.4444, -0.5496, 0.0120, -0.2293, -1.5676],[-0.0805, 1.0818, -1.0642, -1.1229, 0.1533, -0.9521]])a_topk = torch.return_types.topk(
values=tensor([[ 1.4258, 1.0426, 0.5713],[ 1.1797, 0.9376, 0.3872],[ 1.7028, 0.0120, -0.2293],[ 1.0818, 0.1533, -0.0805]]),
indices=tensor([[3, 4, 0],[2, 3, 5],[0, 3, 4],[1, 4, 0]]))Process finished with exit code 0
2、kthvalue:排序后第k小的元素的值
import torcha = torch.randn(4, 6)print('a.shape = ', a.shape)
print('a = ', a)a_kthvalue = a.kthvalue(3, dim=1)
print('\na_kthvalue = ', a_kthvalue)
打印结果:
a.shape = torch.Size([4, 6])
a = tensor([[-0.6937, -2.6252, -0.0817, 0.1022, -0.4947, -0.0497],[ 1.5205, 0.1827, -1.1397, 2.1021, 1.0715, 1.2167],[-1.6002, 1.1374, -1.2099, 2.4795, -0.6292, -1.1339],[ 0.9659, -0.1593, -0.0963, 0.8514, -1.0020, 0.9966]])a_kthvalue = torch.return_types.kthvalue(values=tensor([-0.4947, 1.0715, -1.1339, -0.0963]),indices=tensor([4, 4, 5, 2]))Process finished with exit code 0
五、compare:>、>=、<、<=、!=、==
1、>
import torcha = torch.randn(4, 6)print('a.shape = ', a.shape)
print('a = ', a)a_0 = a > 0
print('\na_0 = ', a_0)
打印结果:
a.shape = torch.Size([4, 6])
a = tensor([[-1.3893, 1.4089, -0.1790, -0.4641, -2.9107, -1.2560],[ 0.1702, 0.3689, -1.4860, 0.5642, 0.8496, 0.4877],[ 0.7780, -0.5726, 1.0474, 0.7246, 0.2890, -1.1601],[ 1.2610, 0.1574, -0.7690, 0.7012, 0.2023, 0.8884]])a_0 = tensor([[False, True, False, False, False, False],[ True, True, False, True, True, True],[ True, False, True, True, True, False],[ True, True, False, True, True, True]])Process finished with exit code 0
2、!=
import torcha = torch.randn(4, 6)print('a.shape = ', a.shape)
print('a = ', a)a_0 = a != 0
print('\na_0 = ', a_0)
打印结果:
a.shape = torch.Size([4, 6])
a = tensor([[ 0.0204, 0.3504, 1.2778, -0.8016, -2.2371, -2.1239],[-0.3999, 2.6354, 3.4434, 0.0612, -0.7063, -0.2649],[ 0.1774, -0.1433, -1.0806, -2.4606, -0.4880, 0.4409],[-1.2463, 0.8048, 0.9639, -0.1631, 0.4157, -0.1088]])a_0 = tensor([[True, True, True, True, True, True],[True, True, True, True, True, True],[True, True, True, True, True, True],[True, True, True, True, True, True]])Process finished with exit code 0
3、==
import torcha = torch.ones(4, 6)
b = torch.randn(4, 6)a_b_eq01 = torch.eq(a, b)
a_b_eq02 = a == bprint('a_b_eq01 = ', a_b_eq01)
print('a_b_eq02 = ', a_b_eq02)a_a_eq01 = torch.eq(a, a)
a_a_eq02 = a == aprint('\na_a_eq01 = ', a_a_eq01)
print('a_a_eq02 = ', a_a_eq02)
打印结果:
a_b_eq01 = tensor([[False, False, False, False, False, False],[False, False, False, False, False, False],[False, False, False, False, False, False],[False, False, False, False, False, False]])
a_b_eq02 = tensor([[False, False, False, False, False, False],[False, False, False, False, False, False],[False, False, False, False, False, False],[False, False, False, False, False, False]])a_a_eq01 = tensor([[True, True, True, True, True, True],[True, True, True, True, True, True],[True, True, True, True, True, True],[True, True, True, True, True, True]])
a_a_eq02 = tensor([[True, True, True, True, True, True],[True, True, True, True, True, True],[True, True, True, True, True, True],[True, True, True, True, True, True]])Process finished with exit code 0
参考资料:
tensor的统计属性
Pytorch:Tensor的统计属性【norm:范数】、【mean、sum】【prod:累乘】【argmin、argmax:最值索引】【keepdim】【kthvalue:第k小的元素、topk】相关推荐
- 13,12_基本运算,add/minus/multiply/divide,矩阵相乘mm,matmul,pow/sqrt/rsqrt,exp/log近似值,统计属性,mean,sum,min,max
1.12.基本运算 1.12.1.add/minus/multiply/divide 1.12.2.矩阵相乘mm,matmul 1.12.3.pow/sqrt/rsqrt 1.12.4.exp/log ...
- pytorch Tensor及其基本操作
转自: https://zhuanlan.zhihu.com/p/36233589 由于之前的草稿都没了,现在只有重写-. 我好痛苦 本章只是对pytorch的常规操作进行一个总结,大家看过有脑子里有 ...
- pytorch tensor查找0_Pytorch tensor(0): Tensor Introduction
1. Instances of the torch.Tensor class Pytorch中tensor是torch.Tensor类的实例 2. Tensor attributes torch.Te ...
- python history没有定义_python – AttributeError:’Tensor’对象没有属性’_keras_history’...
我找了所有"'Tensor'对象没有属性***"但似乎没有一个与Keras相关(除了 TensorFlow: AttributeError: 'Tensor' object has ...
- 【项目实战课】基于Pytorch的StyleGAN人脸属性(表情、年龄、性别)编辑实战
欢迎大家来到我们的项目实战课,本期内容是<基于Pytorch的StyleGAN人脸属性编辑实战>.所谓项目实战课,就是以简单的原理回顾+详细的项目实战的模式,针对具体的某一个主题,进行代码 ...
- ITK:获取图像中标记区域的统计属性
ITK:获取图像中标记区域的统计属性 内容提要 输出结果 C++实现代码 内容提要 输出结果 Number of labels: 2 min: 255 max: 255 median: 0 mean: ...
- opencv mat 修改_C++ opencv矩阵和pytorch tensor的互相转换
矩阵和tensor相互转换 cvmat到tensor tips:这里主要要注意的就是在opencv和pytorch中存储顺序的差异 cv::cvtColor(frame, frame, CV_BGR2 ...
- matlab中向量norm,【Matlab开发】matlab中norm范数以及向量点积、绘图设置相关
[Matlab开发]matlab中norm范数以及向量点积.绘图设置相关 标签(空格分隔): [Matlab开发] 声明:引用请注明出处外链网址已屏蔽 norm范数使用 help norm norm ...
- pytorch tensor 初始化_PyTorch简明笔记[1]-Tensor的初始化和基本操作
听麻麻说,偷偷收藏而不感谢是不礼貌的,至少应该点个赞~我觉得麻麻说的对! 不断地被人安利PyTorch,终于忍不住诱惑决定入坑了. 当初学习TensorFlow的时候,没有系统性地学习.之前TF的英文 ...
最新文章
- OpenCV代码提取:cvtColor函数的实现
- 淘宝网消费者年维权成功金额达1.69亿
- 1、leetcode437 路和总径3
- on java 8 学习笔记 2022.2.16
- HDU 4121 Xiangqi 模拟题
- 《Reids 设计与实现》第十四章 集群(上)
- python免费全套教程-2020全网 最详细的Python入门教程完整版,无偿分享,收藏
- 创建oracle管理用户名和密码是什么情况,Oracle创建时默认创建的用户以及密码
- 一段时间即可做一些事情,如二十分钟
- CodeProject终于迁到Asp.Net了
- linux异步io缺陷,具有libaio性能问题的Linux异步IO
- python在财务中的应用实训报告-数据科学与大数据技术专业实训解决方案
- C语言双向链表的实现
- dorado关于下拉框的的onSelect()方法
- [BZOJ1513]Tet-Tetris 3D
- BUCK启动和停止工作的波形
- js不足十位自动补0函数
- 数据结构——王卓老师PPT
- android将apk生成的二维码放到本地tomcatjenkin(Android 生成二维码)
- c语言获取天气信息示例(通过心知天气api获取)