PyTorch的核心模块介绍

PyTorch的核心模块介绍

  • [1. torch 模块](#1. torch 模块)
  • [2. torch.Tensor 模块](#2. torch.Tensor 模块)
  • [3. torch.nn 模块](#3. torch.nn 模块)
  • [4. torch.optim 模块](#4. torch.optim 模块)
  • [5. torch.jit 模块](#5. torch.jit 模块)
  • [6. torch.onnx 模块](#6. torch.onnx 模块)
  • [7. torch.utils 模块](#7. torch.utils 模块)
  • [8. torch.autograd模块](#8. torch.autograd模块)
  • 9.其他模块

1. torch 模块

  • 包含常用的常量、函数和类等
  • 常用函数:
    • torch.add (加法操作)
    • torch.relu (激活函数)
    • torch.equal (数值判断函数)
    • torch.randn (生成随机数函数)
    • torch.ones (创建数值为1的矩阵函数)

2. torch.Tensor 模块

  • 该模块定义了不同数值类型的张量,比如整型、单精度浮点型、双精度浮点型
  • Tensor包含了众多的属性,常用的属性包括维度属性、设备属性、类型属性等。
  • Tensor还包含了很多函数,常用的方法包括数值运算、逻辑运算、索引操作等。

3. torch.nn 模块

  • 该模块是构建神经网络的核心模块。
  • 模块中定义了卷积、批归一化、激活、全连接、损失函数等。
  • 常规的卷积神经网络和损失函数都可以借助torch.nn模块完成。
  • torch.nn.functional 模块提供了神经网络的常用函数,比如卷积函数、池化函数、激活函数等。这些函数的作用和torch.nn木块中包含的类具有一致的功能。
  • torch.nn.init 模块提供了模型初始化的各种常见策略,比如:
    • torch.nn.init.constant_(常量初始化)
    • torch.nn.init.uniform_(均匀分布初始化)
    • torch.nn.init.normal_(正态分布初始化) 等。
  • 可以使用 torch.nn.init 模块中的初始化函数完成神经网络中卷积层、BN层以及全连接层的参数初始化过程。

4. torch.optim 模块

  • 优化器
    • torch.optim.SGD
    • torch.optim.RMSProp
    • torch.optim.Adam
  • 学习率调整算法(torch.optim.lr_scheduler)
    • torch.optim.lr_scheduler.StepLR(固定步长学习率调整)
    • torch.optim.lr_scheduler.CosineAnnealingLR(余弦退火学习率调整)

5. torch.jit 模块

  • jit 的全称是Just-In-Time 翻译为 即时编译器
  • 使用 jit 模块导出的静态图能够被 C++ 和 Java 等语言调用。

6. torch.onnx 模块

  • 该模块可以将PyTorch训练的模型转换为符合 onnx 格式(Open Neural Network Exchange,开放神经网络交换)的模型。

7. torch.utils 模块

  • 该模块包含多个子模块,用于辅助训练、测试和优化过程。
  • torch.utils.data 提供了数据读取的高效解决方案,可通过 DatasetDataLoader 配合的模式完成 mini-batch 训练模式所需要的 batch 数据。
  • torch.utils.bottleeneck 模块用于测试各部件的云心时间,帮助用户完成优化分析。
  • torch.utils.checkpoint 模块用于显存的优化,这里 checkpoint 的语义 和 TensorFlow 中是不同的。
  • torch.utils.cpp_extensions 定义了C++的扩展功能,能够方便用户使用C++语言实现更多的自定义操作。

8. torch.autograd模块

  • 该模块是自动求导功能的核心模块,支持浮点型张量的求导计算,是神经网络训练过程所用到的核心模块之一。

9.其他模块

  • torch.spase 模块定义了系数张量和相关函数;
  • torch.distributed 模块提供了分布式训练功能,可以实现大规模并行计算;
  • torch.hub 模块提供了众多的预训练模型,用户可以在线下载模型并保存到本地;
  • torch.multiprocessing 模块包含了多线程操作,以提高模型的训练效率;
  • torch.random 模块提供了随机数生成器,可以用于神经网络初始化过程中的随机种子的设定。

参考书籍《PyTorch神经网络实战》

相关推荐
金伟API10244 小时前
如何从零打造一个极简的DeepSeek-R1大模型
人工智能·ai
江畔柳前堤4 小时前
大语言模型分布式训练:从并行策略到万卡工程的系统梳理
人工智能·分布式·深度学习·算法·目标检测·机器学习·语言模型
Shockang4 小时前
智能体环路工程实战
人工智能
美摄科技4 小时前
美摄美颜特效SDK Skill:以AI赋能智能视音频新视界
人工智能
Web3_Daisy5 小时前
Pump.fun 与 FOMO 竞争背后的 Meme 市场变局
大数据·人工智能·金融·web3·区块链
AI创界者5 小时前
MiniMax-H3 本地一键部署整合包:8G 显存玩转文图生视频、视频参考、角色替换与超分补帧全流程
人工智能·深度学习
江畔柳前堤5 小时前
HBM:大语言模型时代的「算力血液」——从内存墙到带宽革命的深度拆解
服务器·人工智能·windows·目标检测·语言模型·自然语言处理·软件工程
美摄科技5 小时前
视频一键成片SDK Skill:AI智能分析与语义理解
人工智能
fthux6 小时前
装闭 RenoPit 源码解析(05):FastAPI与Celery如何执行AI装修分析
人工智能·ai·开源·github·open source·renopit
格数致用7 小时前
数据库设计与表结构详解|信息化项目全流程管理系统源码逐行精讲(五)
人工智能·政务·数据库设计·外键约束