博客
关于我
[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主从复制 master和slave配置的参数大全
查看>>
MySQL主从复制几个重要的启动选项
查看>>
MySQL主从复制及排错
查看>>
mysql主从复制及故障修复
查看>>
MySQL主从复制的原理和实践操作
查看>>
webpack loader配置全流程详解
查看>>
mysql主从复制,读写分离,半同步复制实现
查看>>
MySQL主从失败 错误Got fatal error 1236解决方法
查看>>
MySQL主从架构与读写分离实战
查看>>
MySQL主从篇:死磕主从复制中数据同步原理与优化
查看>>
mysql主从配置
查看>>
MySQL之2003-Can‘t connect to MySQL server on ‘localhost‘(10038)的解决办法
查看>>
MySQL之CRUD
查看>>
MySQL之DML
查看>>
Mysql之IN 和 Exists 用法
查看>>
MYSQL之REPLACE INTO和INSERT … ON DUPLICATE KEY UPDATE用法
查看>>
MySQL之SQL语句优化步骤
查看>>
MYSQL之union和order by分析([Err] 1221 - Incorrect usage of UNION and ORDER BY)
查看>>
Mysql之主从复制
查看>>