pytorch深度学习框架基本介绍

目录

  • 1. PyTorch简介
    • 1.1 什么是PyTorch
    • 1.2 PyTorch的特点
  • 2. 安装与配置
    • 2.1 安装PyTorch
    • 2.2 配置CUDA环境
  • 3. 基础概念
    • 3.1 张量(Tensor)
      • 3.1.1 创建张量
      • 3.1.2 张量的类型转换
    • 3.2 自动微分(Autograd)
  • 4. 构建神经网络
    • 4.1 定义网络结构
    • 4.2 使用nn.Module
  • 5. 数据加载与处理
    • 5.1 使用DataLoader
    • 5.2 数据预处理
  • 6. 训练与评估
    • 6.1 训练模型
    • 6.2 评估模型
  • 7. 模型保存与加载
    • 7.1 保存模型参数
    • 7.2 加载模型参数

1. PyTorch简介

1.1 什么是PyTorch

PyTorch是一个开源的机器学习库,广泛用于计算机视觉和自然语言处理等应用。它由Facebook的人工智能研究团队开发,并且得到了许多研究机构和企业的支持。PyTorch的核心是一个强大的张量计算包,类似于NumPy,但是它能够利用GPU进行加速计算。

PyTorch的设计哲学是简洁和直观,它提供了动态计算图(Dynamic Computation Graph),也称为自动微分系统,这使得构建和修改复杂的神经网络变得更加容易。此外,PyTorch还具有以下特点:

  • 易用性:PyTorch的API设计简洁,易于上手。
  • 灵活性:动态图使得模型的构建和调试更加灵活。
  • 高效性:能够利用GPU加速计算,提高训练和推理的速度。
  • 社区支持:拥有活跃的社区,提供了大量的教程和预训练模型。

1.2 PyTorch的特点

  • 动态计算图
    PyTorch的动态计算图是其最显著的特点之一。它允许用户在运行时修改图形,并且可以按需进行计算。这与传统的静态图框架(如TensorFlow 1.x)相比,提供了更大的灵活性。

  • 自动微分
    PyTorch的自动微分系统是构建在动态计算图之上的。它允许用户轻松地计算梯度,这对于训练神经网络至关重要。PyTorch的autograd模块是实现这一功能的核心。

  • 丰富的API
    PyTorch提供了丰富的API,包括但不限于张量操作、神经网络层、优化器和损失函数。这些API使得用户可以轻松地构建复杂的模型。

  • 多语言支持
    虽然PyTorch最初是用Python编写的,但它也支持C++和CUDA,这使得它在性能和灵活性之间取得了平衡。

  • 社区和生态系统
    PyTorch拥有一个活跃的社区,提供了大量的教程、工具和预训练模型。此外,PyTorch与许多其他库(如NumPy、SciPy和MATLAB)兼容,这使得它在科学计算和数据分析中也非常有用。

2. 安装与配置

2.1 安装PyTorch

PyTorch是一个开源的机器学习库,广泛用于计算机视觉、自然语言处理等人工智能领域。它提供了强大的GPU加速的张量计算能力,以及构建深度学习模型的动态计算图。

安装PyTorch的步骤如下:

  1. 确定Python版本:PyTorch支持Python 3.6到3.9,确保你的Python环境符合要求。

  2. 选择安装包:根据你的系统(Windows、MacOS或Linux)和CUDA版本(如果有GPU),选择合适的安装包。

  3. 使用pip安装:打开终端或命令提示符,输入以下命令之一安装PyTorch:

    • 对于没有GPU或不使用CUDA的用户:

      pip install torch torchvision
      
    • 对于使用CUDA的用户,需要指定CUDA版本,例如CUDA 11.1:

      pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu111
      
  4. 验证安装:安装完成后,可以通过运行以下Python代码来验证PyTorch是否安装成功:

    import torch
    print(torch.__version__)
    

2.2 配置CUDA环境

为了充分利用PyTorch的GPU加速能力,需要正确配置CUDA环境。

配置CUDA的步骤如下:

  1. 检查GPU和CUDA:首先,确保你的计算机有NVIDIA GPU,并且安装了正确版本的CUDA Toolkit。
  2. 安装CUDA驱动:如果尚未安装,需要从NVIDIA官网下载并安装相应的驱动程序。
  3. 安装cuDNN:对于深度学习应用,cuDNN(CUDA Deep Neural Network library)是可选但推荐的加速库。从NVIDIA官网下载与CUDA版本相匹配的cuDNN,并按照官方指南进行安装。
  4. 设置环境变量:确保CUDA相关的路径被添加到系统的环境变量中,以便PyTorch能够找到CUDA库。
  5. 验证CUDA支持:在Python中运行以下代码来检查PyTorch是否能够使用CUDA:
    import torch
    print(torch.cuda.is_available())
    

如果torch.cuda.is_available()返回True,则表示PyTorch已经成功配置了CUDA支持。接下来,你可以开始使用PyTorch进行深度学习模型的训练和推理了。

3. 基础概念

3.1 张量(Tensor)

3.1.1 创建张量

张量是PyTorch中最基本的数据结构,用于表示多维的数据数组,可以运行在CPU或GPU上。张量的创建和操作是进行深度学习的基础。

  • torch.tensor 根据指定数据创建张量
  • torch.Tensor 根据形状创建张量, 其也可用来创建指定数据的张量
  • torch.IntTensor、torch.FloatTensor、torch.DoubleTensor 创建指定类型的张量
  • torch.IntTensor()、torch.FloatTensor()、torch.DoubleTensor() 创建指定类型的张量
  • torch.random.initial_seed()查看随机种子
  • torch.random.manual_seed() 设置随机数种子
  • torch.randn() 创建随机张量
import torch

# 创建一个5x3的张量,元素初始化为0
tensor = torch.zeros(5, 3)

# 创建一个5x3的张量,元素初始化为1
ones_tensor = torch.ones(5, 3)

# 创建一个5x3的张量,元素值为随机数
rand_tensor = torch.rand(5, 3)

# 创建一个张量并指定数据类型
float_tensor = torch.tensor([[1.0, 2.0], [3.0, 4.0]], dtype=torch.float32)

# 张量的基本操作
tensor_add = tensor + ones_tensor  # 张量相加
tensor_mul = tensor * 2           # 张量乘以标量

#  创建随机张量
data = torch.randn(2, 3)  # 创建2行3列张量
print(data)
>>> tensor([[-0.5209, -0.2439, -1.1780],
            [ 0.8133,  1.1442,  0.6790]])

# 查看随机数种子
print('随机数种子:', torch.random.initial_seed())
>>> 随机数种子: 4508475192273306739

# 设置随机数种子 
torch.random.manual_seed(100)
data = torch.randn(2, 3)
print(data)
print('随机数种子:', torch.random.initial_seed())
>>> tensor([[ 0.3607, -0.2859, -0.3938],
            [ 0.2429, -1.3833, -2.3134]])
    随机数种子: 100

3.1.2 张量的类型转换

  • 张量转换为NUMPY数组
# 1. 将张量转换为 numpy 数组
data_tensor = torch.tensor([2, 3, 4])
# 使用张量对象中的 numpy 函数进行转换
data_numpy = data_tensor.numpy(

你可能感兴趣的:(深度学习基础,深度学习,pytorch,人工智能)