微信登录

方法汇总

根据 PyTorch 的模块化设计和官方文档,其方法可分类统计如下表所示。需注意:PyTorch 的方法数量庞大且持续更新,不同层级(如核心算子、模块封装、工具库)的统计口径不同。以下数据综合了核心模块、扩展库(如 TorchVision)及关键子系统的分类方法数,基于最新实践整理:

分类名称 方法数 说明
核心张量操作 2198+ PyTorch 核心算子总数(含 ATen 库)8
神经网络构建 150+ 覆盖层类型、损失函数、激活函数等(如nn.Linear, nn.CrossEntropyLoss
优化器算法 9+ 主要优化器(如 SGD、Adam、Adagrad)及学习率调度器6
数据增强 25+ TorchVision 的transforms 模块方法(如裁剪、旋转、标准化)237
模型部署与量化 4+ 量化方法(动态/静态/QAT/混合量化)1
编译器与加速 50+ PyTorch 2.0 编译器相关操作符(如 TorchInductor 的 Loop-Level IR)8

详细说明:

  1. 核心张量操作(2198+)
    • 包含所有基础张量运算(如数学计算、形状变换、索引),覆盖 CPU/GPU 操作。ATen 库作为后端核心提供约 750 个基础算子,而用户可直接调用的 API 封装后总数超 2198 个8
  2. 神经网络构建(150+)
    • torch.nn 模块提供:
      • 层类型:卷积、线性、池化等约 30 种;
      • 损失函数:交叉熵、均方误差等 10 余种;
      • 激活函数:ReLU、Sigmoid 等 8 种;
      • 容器类SequentialModuleList 等 5 种。
  3. 优化器算法(9+)
    • torch.optim 包含主流优化器:SGD、Adam、RMSprop、Adagrad 等 9 种基础算法,及配套学习率调度器(如 StepLRCosineAnnealingLR6
  4. 数据增强(25+)
    • TorchVision 的 transforms 提供 22 个标准方法(分 4 类:裁剪、翻转、图像变换、增强控制),另有扩展类(如 RandomElastic)用于医学图像等场景27。
  5. 模型部署与量化(4+)
    • 量化方法:动态量化、静态量化(PTQ)、量化感知训练(QAT)、混合量化(FX)1
    • 部署工具:TorchScript、ONNX 导出等。
  6. 编译器与加速(50+)
    • PyTorch 2.0 编译器栈(Dynamo + TorchInductor)使用约 50 个 Loop-Level IR 操作符,支持动态形状编译8

总计与注意事项

  • 总计方法数:约 2500+(不含重复和间接调用)。
  • 统计说明
    • 核心算子(2198)与模块封装方法(如 nnoptim)存在重叠;
    • 部分方法(如 autograd 自定义函数)未计入分类统计;
    • TorchText、TorchAudio 等扩展库未包含在内。
方法汇总