[PyTroch系列-11]:PyTorch基础 - 张量元素的排序
发布日期:2025-06-08 00:51:42
浏览次数:4
分类:精选文章
本文共 1915 字,大约阅读时间需要 6 分钟。
PyTorch张量运算概述
摘要
PyTorch作为深度学习框架提供了强大的张量运算能力,支持对多维数组的复杂运算。本文将从基础到高级操作,全面介绍PyTorch的张量运算特点,包括in place运算、广播机制以及排序操作。
目录
1.1 概述
1.2 运算分类 1.3 "in place"运算 1.4 Tensor的广播机制 1.5 环境准备 1.6 排序运算概述第1章 Tensor运算概述
1.1 概述
PyTorch提供了丰富的张量运算功能,与Numpy类似,但更注重计算效率和灵活性。这些运算通常对数组中的每个元素执行相同函数,并生成新的同维度数组。
1.2 运算分类
PyTorch的运算可以分为以下几类:
- 算术运算:加、减、乘、除
- 函数运算:sin、cos等三角函数
- 取整运算:上取整、下取整
- 统计运算:最大值、最小值、均值
- 比较运算:大于、等于、小于、排序
- 线性代数运算:矩阵运算、点乘、叉乘
第1.3 章 "in place"运算
"in place"运算允许直接修改张量自身数据,避免内存分配。例如:
torch.cos_()和torch.floor_()都是in place版本。
第1.4 章 Tensor的广播机制
PyTorch的张量广播机制支持不同维度的运算。例如:
- 张量A(形状:(2,3))与张量B(形状:(1,2,3))的加法会生成新的张量,形状为(2,3,3)。
第1.5 章 环境准备
安装PyTorch:
import numpy as npimport torchprint("Hello World")print(torch.__version__)print(torch.cuda.is_available()) 第1.6 章 排序运算概述
1.6.1 sort(排序)
- 支持按指定维度(dim)升序或降序排序。
- 默认排序按dim=1方向进行。
1.6.2 topk(获取前K个元素)
- 可以指定方向和排序方式(largest或smallest)。
- 默认返回最大的K个元素。
1.6.3 kthvalue(获取第K个最小值)
- 可以指定维度和方向。
- 需要对数据先排序后获取指定位置的值。
第2章 代码示例:sort(排序)
# 示例:sorta = torch.Tensor([[5,4,1],[6,3,2]])print("源数据:") print(a) print("\n默认排序:") print(torch.sort(a)) print("\ndim=1排序:") print(torch.sort(a, dim=1)) print("\ndim=0排序:") print(torch.sort(a, dim=0)) print("\n成员函数排序:") a.sort(dim=1, descending=True) print(a) 第3章 代码示例:topk(获取前K个最值)
# 示例:topka = torch.Tensor([[2,4,6,12,8,10],[1,1,5,11,11,9]])print("源数据:") print(a) print("\n默认参数:") print(torch.topk(a,2)) print("\n取K个最大值:") b = torch.topk(a, k=2, largest=True) print(b) print("\n取K个最小值:") torch.topk(a, k=2, largest=False, out=b) print(b) 第4章 代码示例:kthvalue(取第K个最小值)
# 示例:kthvaluea = torch.Tensor([[2,4,6,12,8,0],[3,7,5,11,1,9]])print("源数据:") print(a) print("\n源数据排序后的值:") print(torch.sort(a)) print("\n默认参数取第3个最小值::") print(torch.kthvalue(a,3)) print("\n按dim=1的方向取第3个最小值:") b = torch.kthvalue(a, k=3, dim=1) print(b) print("\n按dim=0的方向取第1个最小值:") torch.kthvalue(a, k=1, dim=0, out=b) print(b) 本文通过详细介绍PyTorch的张量运算特点,帮助读者掌握PyTorch的核心操作。
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2026年06月12日 04时29分56秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
PHP高性能分布式应用服务器框架-SwooleDistributed
2023-03-02
PHP高效、轻量级表格数据处理库 OpenSpout
2023-03-02
R 数据缺失的处理
2023-03-02
php,nginx重启
2023-03-02
php:$_ENV 和 getenv区别
2023-03-02
PHP:PDOStatement::bindValue参数类型php5和php7问题
2023-03-02
Q媒体播放器.如何播放具有多个音频的视频?
2023-03-02
pickle
2023-03-02
Pickle thread.lock(Pymongo)
2023-03-02
pickle模块
2023-03-02
qYKVEtqdDg
2023-03-02
pid控制
2023-03-02
PID控制介绍-ChatGPT4o作答
2023-03-02
PID控制器数字化
2023-03-02
Qwen-VL项目使用指南
2023-03-02
PIESDKDoNet二次开发配置注意事项
2023-03-02
PIGS POJ 1149 网络流
2023-03-02
PIL Image对图像进行点乘,加上常数(等像素操作)
2023-03-02
PIL Image转Pytorch Tensor
2023-03-02