本文共 1915 字,大约阅读时间需要 6 分钟。
PyTorch作为深度学习框架提供了强大的张量运算能力,支持对多维数组的复杂运算。本文将从基础到高级操作,全面介绍PyTorch的张量运算特点,包括in place运算、广播机制以及排序操作。
1.1 概述
1.2 运算分类 1.3 "in place"运算 1.4 Tensor的广播机制 1.5 环境准备 1.6 排序运算概述PyTorch提供了丰富的张量运算功能,与Numpy类似,但更注重计算效率和灵活性。这些运算通常对数组中的每个元素执行相同函数,并生成新的同维度数组。
PyTorch的运算可以分为以下几类:
"in place"运算允许直接修改张量自身数据,避免内存分配。例如:
torch.cos_()
和 torch.floor_()
都是in place版本。PyTorch的张量广播机制支持不同维度的运算。例如:
安装PyTorch:
import numpy as npimport torchprint("Hello World")print(torch.__version__)print(torch.cuda.is_available())
# 示例: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)
# 示例: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)
# 示例: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的核心操作。
转载地址:http://gprfk.baihongyu.com/