在深度学习中,张量(Tensor)是最基础也是最核心的数据结构,PyTorch 作为主流的深度学习框架,提供了丰富的张量操作 API。本文将从张量的创建、类型转换、基本运算、索引切片、形状调整到拼接等方面,通过具体示例详细讲解 PyTorch 张量的常用操作,适合初学者快速入门。
一、张量的创建
PyTorch 提供了多种创建张量的方法,可根据不同需求选择合适的方式。
1. 基于数据或形状创建
torch.tensor(data):根据指定数据创建张量torch.Tensor(shape):根据形状创建张量(默认浮点型)torch.IntTensor(shape)、torch.FloatTensor(shape)等:创建指定数据类型的张量
import torch
# 根据数据创建张量
print(torch.tensor([1, 2, 3])) # 输出:tensor([1, 2, 3])
# 根据形状创建张量(未初始化,值为随机)
print(torch.Tensor(3, 5)) # 输出3行5列的浮点型张量
# 创建指定类型的张量(int型)
print(torch.IntTensor(3, 5)) # 输出3行5列的int型张量
2. 线性与随机张量
torch.arange(start, end, step):创建线性序列张量torch.linspace(start, end, steps):创建均分序列张量torch.rand(shape):创建 [0,1) 均匀分布的随机张量torch.randn(shape):创建标准正态分布的随机张量torch.randint(low, high, shape):创建整数随机张量
# 设置随机种子,保证结果可复现
torch.random.manual_seed(100)
# 步长为2的线性序列(0到10,不包含10)
print(torch.arange(0, 10, 2)) # 输出:tensor([0, 2, 4, 6, 8])
# 0到10之间均分5个值
print(torch.linspace(0, 10, 5)) # 输出:tensor([ 0.0000, 2.5000, 5.0000, 7.5000, 10.0000])
# 3行5列的均匀分布随机张量
print(torch.rand(3, 5))
# 3行5列的标准正态分布随机张量
print(torch.randn(3, 5))
# 0-10之间的3行5列整数随机张量
print(torch.r

最低0.47元/天 解锁文章
1197

被折叠的 条评论
为什么被折叠?



