PyTorch教程(七):属性统计
范数
1-范数:∥x∥1=∑i=1N∣xi∣\left \| x \right \|_1=\sum_{i=1}^N\left| x_i \right|∥x∥1=∑i=1N∣xi∣ 即向量元素绝对值之和。
import torch
a = torch.full([8],1)
b = a.view(2,4)
# tensor([[1, 1, 1, 1],
# [1, 1, 1, 1]])
c = a.view(2,2,2)
# tensor([[[1, 1],
# [1, 1]],
#
# [[1, 1],
# [1, 1]]])
a = a.float() # 需要转化为float,否则报错Can only calculate the mean of floating types. Got Long instead
b = b.float()
c = c.float()# 第一范式
a.norm(1) # tensor(8.)
b.norm(1) # tensor(8.)
c.norm(1) # tensor(8.)
2-范数:∥x∥2=∑i=1Nxi2\left \| x \right \|_2=\sqrt{\sum_{i=1}^Nx_i^2}∥x∥2=∑i=1Nxi2,即向量元素绝对值的平方和再开方。
a.norm(2) # tensor(2.8284)
b.norm(2) # tensor(2.8284)
c.norm(2) # tensor(2.8284)# 在第一个维度上,1-范数
b.norm(1,dim=1) # tensor([4., 4.])
# 在第一个维度上,2-范数
b.norm(2,dim=1) # tensor([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]])
mean、sum、min、max、prod
a = torch.arange(8).view(2,4).float()
# tensor([[0., 1., 2., 3.],
# [4., 5., 6., 7.]])
a.min() # tensor(0.) 最小值
a.max() # tensor(7.) 最大值
a.mean() # tensor(3.5000) 平均值
a.sum() # tensor(28.) 累加
a.prod() # tensor(0.) 累乘
a.argmax() # tensor(7) 最大值的索引,将数据打平之后的索引
a.argmin() # tensor(0) 最小值的索引,将数据打平之后的索引a = torch.randn(4,10)
a.argmax(dim=1) # tensor([0, 1, 4, 9]) 返回维度的最大数的索引# 更简单的做法,直接返回最大值和对应的索引
a.max(dim=1)
# torch.return_types.max(
# values=tensor([1.7486, 0.8279, 1.1447, 2.9224]),
# indices=tensor([0, 1, 4, 9]))
topk
a = torch.rand(4,10)
# tensor([[0.1952, 0.0522, 0.0049, 0.5136, 0.8603, 0.8427, 0.8195, 0.9584, 0.2865,
# 0.3642],
# [0.1997, 0.4595, 0.3956, 0.6997, 0.1752, 0.6585, 0.4618, 0.8720, 0.4493,
# 0.8950],
# [0.3413, 0.3944, 0.4641, 0.5972, 0.7680, 0.6328, 0.0565, 0.6384, 0.8459,
# 0.1884],
# [0.8966, 0.7085, 0.9635, 0.8404, 0.3393, 0.1922, 0.2011, 0.9136, 0.9064,
# 0.6741]])# top3
a.topk(3, dim=1) # 在10这个维度中,获取前三个最大的值,并返回对应的索引
# torch.return_types.topk(
# values=tensor([[0.9584, 0.8603, 0.8427],
# [0.8950, 0.8720, 0.6997],
# [0.8459, 0.7680, 0.6384],
# [0.9635, 0.9136, 0.9064]]),
# indices=tensor([[7, 4, 5],
# [9, 7, 3],
# [8, 4, 7],
# [2, 7, 8]]))# 最小3个
a.topk(3, dim=1, largest = False)# 第8小的(相当于第3大),方法只能算第几小,不能算第几大
a.kthvalue(8,dim=1)
# torch.return_types.kthvalue(
# values=tensor([0.8427, 0.6997, 0.6384, 0.9064]),
# indices=tensor([5, 3, 7, 8]))
逻辑运算
a = torch.rand(2,3)
# tensor([[0.3328, 0.8201, 0.0464],
# [0.6762, 0.1728, 0.4123]])
a>0
# tensor([[True, True, True],
# [True, True, True]])
b = torch.ones(2,3)torch.eq(a,b)
# tensor([[False, False, False],
# [False, False, False]])torch.equal(a,b)
# False
PyTorch教程(七):属性统计相关推荐
- Stanford CS224N: PyTorch Tutorial (Winter ‘21) —— 斯坦福CS224N PyTorch教程 (第二部分)
本教程译文的第一部分,请见我的上一篇博文: Stanford CS224N: PyTorch Tutorial (Winter '21) -- 斯坦福CS224N PyTorch教程 (第一部分)_放 ...
- MVC5+EF6 入门完整教程七
原文:MVC5+EF6 入门完整教程七 本篇我们针对表格显示添加一些新功能. 前面我们已经讲解过表格显示数据了,现在我们添加三个常用功能: 对显示结果进行排序.过滤.分页. 文章提纲 理论基础/前置准 ...
- 【深度学习】Github上标星1.1W的PyTorch教程,我们给您搬来了
之前给大家推过TensorFlow的入门教程,大家纷纷表示"搞研究用PyTorch它不香嘛?" 行,那说干就干.我们马上去Github上,给大家搬来了一本开源的PyTorch教程& ...
- ASP.NET 5系列教程(七)完结篇-解读代码
在本文中,我们将一起查看TodoController 类代码. [Route] 属性定义了Controller的URL 模板: [Route("api/[controller]&quo ...
- Xamarin XAML语言教程使用属性设置进度条的当前进度
Xamarin XAML语言教程使用属性设置进度条的当前进度 在图12.19~12.21中我们看到的是没有实现加载的进度条,即进度条的当前进度为0,如果开发者想要修改当前进度,可以使用两种方式:一种是 ...
- Xamarin XAML语言教程Progress属性设置进度条进度
Xamarin XAML语言教程Progress属性设置进度条进度 在图12.19~12.21中我们看到的是没有实现加载的进度条,即进度条的当前进度为0,如果开发者想要修改当前进度,可以使用两种方式: ...
- pytorch教程龙曲良21-25
21合并与分割2 split 按照长度/单元长度拆分 c的shape是[2,32,8]aa,bb=c.split(1,dim=0)#操作单元是在0维度上操作,拆分单元长度是1aa,bb=c.split ...
- MongoDB 教程七: MongoDB和PHP结合开发
视频:MongoDB 教程七: MongoDB和PHP结合开发 Linux上安装 MongoDB PHP扩展 在终端上安装 你可以在linux中执行以下命令来安装MongoDB 的 PHP 扩展驱动 ...
- c语言第七章函数笔记,我的C语学习笔记-C语言教程(七).doc
我的C语学习笔记- C语言教程(七) C语言教程---第一章: C语言概论 C语言教程---第二章: 数据类型.运算符.表达式 C语言教程---第三章: C语言程序设计初步 C语言教程---第四章: ...
- YDOOK:Pytorch教程:转置矩阵 转置张量 T
YDOOK:Pytorch教程:转置矩阵 转置张量 T © YDOOK Jinwei Lin, shiye.work import torch import numpy as npt = torch. ...
最新文章
- Java并发面试,幸亏有点道行,不然又被忽悠了
- 点点看 只有想不到没有看不到
- 学习使用markdown(markdown篇)
- 解析Markdown文件生成React组件文档
- 安卓加载mysql数据到列表里_Android如何从数据库中加载海量数据
- 关于大数据与机器学习,小白和牛人之间15个典型问答精华整理上篇
- [vue] vue自定义事件中父组件怎么接收子组件的多个参数?
- Linux的实际操作:文件目录类的实用指令(cat more less)
- hdu 1232 畅通工程
- list在c语言中的作用,在C语言中大略实现VC++中的LISTARRAY功能方法(一)
- GitHub:攻击者正在利用被盗 OAuth 令牌攻击数十家组织机构
- 供应链金融与区块链的关系
- 不限空间大小 会赚钱的网盘 收益模式详解
- Spring boot快速开发Rest服务
- 欧盟监管机构将逐一评估辖区内ICO项目
- uniapp支付宝小程扫描二维码获取参数
- 火狐浏览器更新版本之后总是在当前页面打开新链接覆盖掉原先内容
- php获取prepay_id时报错,微信支付获取prepay_id返回签名错误,官方demo中的签名方法MD5验证有问题...
- 常用软件官网下载链接汇总
- 1024 程序员节官方剧透:重磅大咖再聚,共话中国技术新生态
热门文章
- Android开发六 电话拔号器
- 在datatable中,在指定位置插入列
- java iterator map_Java循环遍历输出map方法
- kafka(一)-为什么使用kafka
- uni-app组件之间的传值
- linux 写脚本登录ftp,Linux使用Shell脚本实现ftp的自动上传下载-Go语言中文社区
- mysql 存guid类型_从C#在MySQL中存储GUID
- mysql导入dat文件_从零开始学习 MySQL 系列--索引、视图、导入和导出
- 2008matlab error 95,VS2008和MATLAB2010b混合编程有关问题 error LINK2028 恳请指教!(2)
- git log 查看某文件的修改历史