博客
关于我
[PyTroch系列-11]:PyTorch基础 - 张量元素的排序
阅读量:798 次
发布时间:2023-04-05

本文共 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 np
import torch
print("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(排序)

# 示例:sort
a = 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个最值)

# 示例:topk
a = 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个最小值)

# 示例:kthvalue
a = 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的核心操作。

转载地址:http://gprfk.baihongyu.com/

你可能感兴趣的文章
MySQL中DQL语言的执行顺序
查看>>
mysql中floor函数的作用是什么?
查看>>
MySQL中group by 与 order by 一起使用排序问题
查看>>
mysql中having的用法
查看>>
MySQL中interactive_timeout和wait_timeout的区别
查看>>
mysql中int、bigint、smallint 和 tinyint的区别、char和varchar的区别详细介绍
查看>>
mysql中json_extract的使用方法
查看>>
mysql中json_extract的使用方法
查看>>
mysql中kill掉所有锁表的进程
查看>>
mysql中like % %模糊查询
查看>>
MySql中mvcc学习记录
查看>>
mysql中null和空字符串的区别与问题!
查看>>
MySQL中ON DUPLICATE KEY UPDATE的介绍与使用、批量更新、存在即更新不存在则插入
查看>>
MYSQL中TINYINT的取值范围
查看>>
MySQL中UPDATE语句的神奇技巧,让你操作数据库如虎添翼!
查看>>
Mysql中varchar类型数字排序不对踩坑记录
查看>>
MySQL中一条SQL语句到底是如何执行的呢?
查看>>
MySQL中你必须知道的10件事,1.5万字!
查看>>
MySQL中使用IN()查询到底走不走索引?
查看>>
Mysql中使用存储过程插入decimal和时间数据递增的模拟数据
查看>>