【PyTorch】PyTorch中张量(Tensor)统计操作

PyTorch深度学习总结

第五章 PyTorch中张量(Tensor)统计操作


文章目录


前言

上文介绍了PyTorch中张量(Tensor)的计算操作,本文将介绍张量的统计操作。


一、最值查找

函数 描述
torch.max() 找出张量中的最大值
torch.argmax() 输出最大值所在位置
torch.min() 找出张量中的最小值
torch.argmin() 输出最小值所在位置
torch.sort() 对一维张量或多维(每个维度单独)进行排序
torch.topk(A, k) 根据指定值k,计算出张量A取值为前k大的值,并显示所在位置
torch.kthvalue(A, k) 根据指定值k,计算出张量A取值为第k小的值,并显示所在位置

创建张量:

python 复制代码
# 引入库
import torch

# 创建张量A
A = torch.arange(2., 8.).reshape(2,3)
print(A)

输出结果为:tensor([[2, 3, 4], [5, 6, 7]])


测试函数:

python 复制代码
print(A.max())
print(A.argmax())
print(A.min())
print(A.argmin())

输出结果为(含注释):

tensor(7.)

tensor(5) # 0-5的最后一位

tensor(2.)

tensor(0) # 0-5的第一位


torch.sort()
创建随机张量B:

python 复制代码
# 创建随机张量B
B = torch.randperm(15).reshape(3, 5) # torch.randperm(n)可以生成有n个0-10之间整数组成的张量
print(B)

输出结果为:

tensor(

\[13, 9, 1, 2, 0\], \[ 4, 14, 12, 3, 7\], \[ 5, 6, 8, 11, 10\]\]) *** ** * ** *** **对张量B进行排序:** ```python # 升序输出 print(B.sort()) # 分别输出排序后的值,以及该值在原索引中不同维度的位置(列数) ``` 输出结果为: torch.return_types.sort( values=tensor(\[\[ 0, 1, 2, 9, 13\], \[ 3, 4, 7, 12, 14\], \[ 5, 6, 8, 10, 11\]\]), indices=tensor(\[\[4, 2, 3, 1, 0\], \[3, 0, 4, 2, 1\], \[0, 1, 2, 4, 3\]\])) *** ** * ** *** ```python # 降序输出 print(B.sort(descending=True)) ``` 输出结果为: torch.return_types.sort( values=tensor(\[\[13, 9, 2, 1, 0\], \[14, 12, 7, 4, 3\], \[11, 10, 8, 6, 5\]\]), indices=tensor(\[\[0, 1, 3, 2, 4\], \[1, 2, 4, 0, 3\], \[3, 4, 2, 1, 0\]\]))


测试函数torch.topk()

python 复制代码
# 选取每个维度最大和次大的值,及其位置
print(B.topk(2))

输出结果为:

torch.return_types.topk(

values=tensor([[13, 9],

14, 12\], \[11, 10\]\]), indices=tensor(\[\[0, 1\], \[1, 2\], \[3, 4\]\])) *** ** * ** *** ```python # 选取2-dim维度前2大的值及其位置 print(B) print(B.topk(2, dim=0)) # 每列最大的两个值 ``` 输出结果为(含注释): tensor(\[\[13, 9, 1, 2, 0\], \[ 4, 14, 12, 3, 7\], \[ 5, 6, 8, 11, 10\]\]) torch.return_types.topk( values=tensor(\[\[13, 14, 12, 11, 10\], \[ 5, 9, 8, 3, 7\]\]), indices=tensor(\[\[0, 1, 1, 2, 2\], \[2, 0, 2, 1, 1\]\])) # indices表示对应元素的行数 *** ** * ** *** ```python # 选取2-dim最大和次大的值,及其位置 print(B.topk(2, dim=1)) # 与默认情况相同默认情况 ``` 输出结果为: torch.return_types.topk( values=tensor(\[\[13, 9\], \[14, 12\], \[11, 10\]\]), indices=tensor(\[\[0, 1\], \[1, 2\], \[3, 4\]\]))


测试函数torch.kthvalue()

python 复制代码
# 选取每个维度第2小的值及其位置
print(B)
print(B.kthvalue(2))

输出结果为:

tensor([[13, 9, 1, 2, 0],

4, 14, 12, 3, 7\], \[ 5, 6, 8, 11, 10\]\]) torch.return_types.kthvalue( values=tensor(\[1, 4, 6\]), indices=tensor(\[2, 0, 1\]))


二、特殊值查询

函数 描述
torch.mean(A, dim=0) 根据指定维度计算均值
torch.sum(A, dim=0) 根据指定维度求和
torch.cumsum(A, dim=0) 根据指定维度计算累加和
torch.median(A, dim=0) 根据指定维度计算中位数
torch.cumprod(A, dim=0) 根据指定维度计算乘积
torch.std(A, dim=0) 根据指定维度计算标准差

测试函数(维度0):

python 复制代码
print(A)
print(A.mean(dim=0))
print(A.sum(dim=0))
print(A.cumsum(dim=0))
print(A.median(dim=0))
print(A.cumprod(dim=0))
print(A.std(dim=0))

输出结果为(含注释):

tensor([[2., 3., 4.],

5., 6., 7.\]\]) # 张量A tensor(\[3.5000, 4.5000, 5.5000\]) # 每列均值 tensor(\[ 7., 9., 11.\]) # 每列求和 tensor(\[\[ 2., 3., 4.\], \[ 7., 9., 11.\]\]) # 每列累加求和 torch.return_types.median( values=tensor(\[2., 3., 4.\]), indices=tensor(\[0, 0, 0\])) # 每列中位数及索引 tensor(\[\[ 2., 3., 4.\], \[10., 18., 28.\]\]) # 每列累乘 tensor(\[2.1213, 2.1213, 2.1213\]) # 每列标准差 *** ** * ** *** ```python print(A) print(A.mean(dim=1)) print(A.sum(dim=1)) print(A.cumsum(dim=1)) print(A.median(dim=1)) print(A.cumprod(dim=1)) print(A.std(dim=1)) ``` 输出结果为(含注释): tensor(\[\[2., 3., 4.\], \[5., 6., 7.\]\]) # 张量A tensor(\[3., 6.\]) # 每行均值 tensor(\[ 9., 18.\]) # 每行求和 tensor(\[\[ 2., 5., 9.\], \[ 5., 11., 18.\]\]) # 按行逐个累加 torch.return_types.median( values=tensor(\[3., 6.\]), indices=tensor(\[1, 1\])) # 每行中位数 tensor(\[\[ 2., 6., 24.\], \[ 5., 30., 210.\]\]) # 按行逐个累乘 tensor(\[1., 1.\]) # 每行标准差

相关推荐
董厂长2 小时前
langchain :记忆组件混淆概念澄清 & 创建Conversational ReAct后显示指定 记忆组件
人工智能·深度学习·langchain·llm
亿牛云爬虫专家2 小时前
Kubernetes下的分布式采集系统设计与实战:趋势监测失效引发的架构进化
分布式·python·架构·kubernetes·爬虫代理·监测·采集
G皮T5 小时前
【人工智能】ChatGPT、DeepSeek-R1、DeepSeek-V3 辨析
人工智能·chatgpt·llm·大语言模型·deepseek·deepseek-v3·deepseek-r1
九年义务漏网鲨鱼5 小时前
【大模型学习 | MINIGPT-4原理】
人工智能·深度学习·学习·语言模型·多模态
元宇宙时间5 小时前
Playfun即将开启大型Web3线上活动,打造沉浸式GameFi体验生态
人工智能·去中心化·区块链
开发者工具分享5 小时前
文本音频违规识别工具排行榜(12选)
人工智能·音视频
产品经理独孤虾6 小时前
人工智能大模型如何助力电商产品经理打造高效的商品工业属性画像
人工智能·机器学习·ai·大模型·产品经理·商品画像·商品工业属性
老任与码6 小时前
Spring AI Alibaba(1)——基本使用
java·人工智能·后端·springaialibaba
蹦蹦跳跳真可爱5896 小时前
Python----OpenCV(图像増强——高通滤波(索贝尔算子、沙尔算子、拉普拉斯算子),图像浮雕与特效处理)
人工智能·python·opencv·计算机视觉
nananaij6 小时前
【Python进阶篇 面向对象程序设计(3) 继承】
开发语言·python·神经网络·pycharm