基本信息
文件名称:机器学习平台:PyTorch二次开发_(1).PyTorch基础与核心机制.docx
文件大小:26.33 KB
总页数:28 页
更新时间:2025-03-27
总字数:约1.55万字
文档摘要

PAGE1

PAGE1

PyTorch基础与核心机制

在上一节中,我们介绍了PyTorch的基本安装和环境配置,确保您已经成功安装了PyTorch并能够运行简单的示例代码。接下来,我们将深入探讨PyTorch的基础概念和核心机制,这是进行二次开发的基础。本节将涵盖以下几个主要内容:

张量(Tensor)

自动求导(Autograd)

神经网络模块(nn.Module)

优化器(Optimizers)

数据加载与处理(DataLoader)

1.张量(Tensor)

张量是PyTorch中最基本的数据结构,可以看作是一个多维数组。张量在PyTorch中用于表示输入数据、模型参数和输出结果。张量具有多种属性,如形状(shape)、数据类型(dtype)和设备(device)。

1.1创建张量

创建张量有多种方法,包括从列表或NumPy数组创建、使用预定义的张量工厂函数等。

importtorch

#从列表创建张量

data=[[1,2],[3,4]]

tensor_from_list=torch.tensor(data)

print(tensor_from_list)

#使用预定义的张量工厂函数

#创建一个2x3的全零张量

zero_tensor=torch.zeros(2,3)

print(zero_tensor)

#创建一个2x3的全一张量

one_tensor=torch.ones(2,3)

print(one_tensor)

#创建一个2x3的随机张量

random_tensor=torch.rand(2,3)

print(random_tensor)

#创建一个2x3的张量,值从1到6

range_tensor=torch.arange(1,7).reshape(2,3)

print(range_tensor)

1.2张量的属性

张量的属性包括形状、数据类型和设备。这些属性可以通过张量对象的方法来获取和设置。

#获取张量的形状

shape=tensor_from_list.shape

print(fShape:{shape})

#获取张量的数据类型

dtype=tensor_from_list.dtype

print(fDataType:{dtype})

#获取张量所在的设备

device=tensor_from_list.device

print(fDevice:{device})

#将张量移动到GPU

iftorch.cuda.is_available():

tensor_on_gpu=tensor_from_list.to(cuda)

print(fTensoronGPU:{tensor_on_gpu})

1.3张量操作

张量支持各种操作,包括基本的数学运算、索引、切片、重塑等。

#基本数学运算

a=torch.tensor([1,2,3])

b=torch.tensor([4,5,6])

c=a+b

print(fa+b:{c})

#索引和切片

tensor=torch.arange(1,10).reshape(3,3)

print(fTensor:\n{tensor})

print(fFirstrow:{tensor[0]})

print(fFirstcolumn:{tensor[:,0]})

#重塑张量

reshaped_tensor=tensor.view(9)

print(fReshapedTensor:{reshaped_tensor})

#转置张量

transposed_tensor=tensor.t()

print(fTransposedTensor:\n{transposed_tensor})

1.4张量与NumPy数组的互操作

PyTorch张量和NumPy数组之间可以轻松转换,这在数据预处理和模型评估中非常有用。

importnumpyasnp

#从NumPy数组创建张量

np_array=np.array([1,2,3])

tensor_from_numpy=torch.from_numpy(np_array)

print(fTensorfromNumPy:{tensor_from_numpy})

#将张量转换为NumPy数组

tensor=torch.tensor([1,2,3])

numpy