欢迎来到 PyTorch 教程¶ PyTorch 教程有什么新内容? 结合 torch.compile 使用 Torch Function 模式 上下文并行教程 PyTorch 2 通过 Inductor 使用 Intel GPU 后端进行导出量化 (beta) 使用 foreach_map 和 torch.compile 进行显式水平融合 更新的 Inductor Windows CPU 教程 学习基础知识 熟悉 PyTorch 的概念和模块。在本快速入门指南中学习如何加载数据、构建深度神经网络、训练和保存模型。 PyTorch 入门 PyTorch Recipes 简短、即时可部署的 PyTorch 代码示例。 探索 Recipes 全部 学习基础知识 使用 PyTorch 构建完整机器学习工作流的分步指南。 入门 YouTube 上的 PyTorch 入门 使用 PyTorch 构建完整机器学习工作流的入门。遵循 YouTube 上的 PyTorch 初学者系列。 入门 通过示例学习 PyTorch 本教程通过独立的示例介绍了 PyTorch 的基本概念。 入门 torch.nn 究竟是什么? 使用 torch.nn 创建和训练神经网络。 入门 使用 TensorBoard 可视化模型、数据和训练 学习使用 TensorBoard 可视化数据和模型训练。 可解释性,入门,TensorBoard PyTorch 中 `non_blocking` 和 `pin_memory()` 的良好使用方法 关于将数据从 CPU 复制到 GPU 的最佳实践指南。 入门 TorchVision 目标检测微调教程 微调预训练的 Mask R-CNN 模型。 图像/视频 计算机视觉迁移学习教程 使用迁移学习训练用于图像分类的卷积神经网络。 图像/视频 优化 Vision Transformer 模型 将前沿的、基于注意力的 Transformer 模型应用于计算机视觉任务。 图像/视频 对抗样本生成 使用迁移学习训练用于图像分类的卷积神经网络。 图像/视频 DCGAN 教程 训练一个生成对抗网络 (GAN) 来生成新的名人图像。 图像/视频 空间变换网络教程 学习如何使用视觉注意力机制增强你的网络。 图像/视频 使用 TIAToolbox 在全玻片图像上进行推理 学习如何使用 TIAToolbox 在全玻片图像上执行推理。 图像/视频 基于 USB 的半监督学习教程 学习如何使用 USB 和 PyTorch 训练半监督学习算法(在自定义数据上)。 图像/视频 音频输入/输出 学习使用 torchaudio 加载数据。 音频 音频重采样 学习使用 torchaudio 对音频波形进行重采样。 音频 音频数据增强 学习使用 torchaudio 应用数据增强。 音频 音频特征提取 学习使用 torchaudio 提取特征。 音频 音频特征增强 学习使用 torchaudio 增强特征。 音频 音频数据集 学习使用 torchaudio 数据集。 音频 torchaudio 中使用 Wav2Vec2 进行自动语音识别 学习如何使用 torchaudio 的预训练模型构建语音识别应用。 音频 语音指令分类 学习如何正确格式化音频数据集,然后在该数据集上训练/测试音频分类网络。 音频 使用 torchaudio 进行文本转语音 学习如何使用 torchaudio 的预训练模型构建文本转语音应用。 音频 torchaudio 中使用 Wav2Vec2 进行强制对齐 学习如何使用 torchaudio 的 Wav2Vec2 预训练模型进行文本到语音的对齐 音频 从头开始学 NLP:使用字符级 RNN 对名称进行分类 从头开始构建并训练一个基本的字符级 RNN 来对单词进行分类,不使用 torchtext。三部分教程系列的第一部分。 NLP 从头开始学 NLP:使用字符级 RNN 生成名称 在使用字符级 RNN 对名称进行分类后,学习如何从语言生成名称。三部分教程系列的第二部分。 NLP 从头开始学 NLP:使用序列到序列网络和注意力进行翻译 这是关于“从头开始学 NLP”的第三个也是最后一个教程,我们将自己编写类和函数来预处理数据,以执行我们的 NLP 建模任务。 NLP (可选) 使用 TorchDynamo 后端将 PyTorch 模型导出到 ONNX 并使用 ONNX Runtime 运行 在 PyTorch 中构建图像分类器模型,并将其转换为 ONNX,然后使用 ONNX Runtime 进行部署。 生产,ONNX,后端 扩展 ONNX 导出器算子支持 端到端演示如何处理 ONNX 中不受支持的算子。 生产,ONNX,后端 将带有控制流的模型导出到 ONNX 演示如何在将 PyTorch 模型导出到 ONNX 时处理控制流逻辑。 生产,ONNX,后端 强化学习 (DQN) 学习如何使用 PyTorch 在 OpenAI Gym 的 CartPole-v0 任务上训练一个深度 Q 学习 (DQN) 智能体。 强化学习 使用 TorchRL 进行强化学习 (PPO) 学习如何使用 PyTorch 和 TorchRL 在 Gym 的 Inverted Pendulum 任务上训练一个近端策略优化智能体。 强化学习 训练一个玩马里奥的强化学习智能体 使用 PyTorch 训练一个双 Q 学习智能体来玩马里奥。 强化学习 循环 DQN 使用 TorchRL 训练循环策略 强化学习 编写一个 DDPG Loss 使用 TorchRL 编写一个 DDPG Loss 强化学习 编写你的环境和变换 使用 TorchRL 编写一个 Pendulum 强化学习 通过 REST API 使用 Flask 在 Python 中部署 PyTorch 使用 Flask 部署 PyTorch 模型,并通过 REST API 暴露模型推理服务,示例为检测图像的预训练 DenseNet 121 模型。 生产 TorchScript 入门 TorchScript 入门,它是 PyTorch 模型(nn.Module 的子类)的一种中间表示,可以在高性能环境(如 C++)中运行。 生产,TorchScript 在 C++ 中加载 TorchScript 模型 学习 PyTorch 如何提供从现有 Python 模型到序列化表示的转换,该表示可以纯粹从 C++ 加载和执行,无需依赖 Python。 生产,TorchScript (可选) 使用 TorchScript 后端将 PyTorch 模型导出到 ONNX 并使用 ONNX Runtime 运行 将 PyTorch 中定义的模型转换为 ONNX 格式,然后使用 ONNX Runtime 运行。 生产,ONNX 性能分析 PyTorch 学习如何对 PyTorch 应用进行性能分析 性能分析 _static/img/thumbnails/default.png 性能分析 PyTorch 整体跟踪分析入门 性能分析 _static/img/thumbnails/default.png 性能分析 PyTorch 使用整体跟踪分析进行跟踪差异比较 性能分析 _static/img/thumbnails/default.png 在 FX 中构建卷积/批量归一化融合器 构建一个简单的 FX Pass,将批量归一化融合到卷积中,以提高推理性能。 FX 使用 FX 构建一个简单的性能分析器 构建一个简单的 FX 解释器,记录操作、模块和函数调用的运行时,并报告统计信息 FX (beta) PyTorch 中的 Channels Last 内存格式 获取 Channels Last 内存格式的概述,并了解如何使用它在内存中按维度排列 NCHW 张量。 内存格式,最佳实践,前端 API 使用 PyTorch C++ 前端 通过训练一个 DCGAN(一种生成模型)来生成 MNIST 数字图像,从而演练一个使用 C++ 前端训练模型的端到端示例。 前端 API,C++ PyTorch 自定义算子登陆页 这是与 PyTorch 中自定义算子相关的所有内容的登陆页。 扩展 PyTorch,前端 API,C++,CUDA 自定义 Python 算子 在 Python 中创建自定义算子。对于将 Python 函数进行黑盒化以与 torch.compile 一起使用非常有用。 扩展 PyTorch,前端 API,C++,CUDA 编译式 Autograd:为 ``torch.compile`` 捕获更大的反向图 学习如何使用编译式 autograd 捕获更大的反向图。 模型优化,CUDA 自定义 C++ 和 CUDA 算子 如何使用自定义 C++ 和 CUDA 算子扩展 PyTorch。 扩展 PyTorch,前端 API,C++,CUDA 自定义 C++ 和 CUDA 扩展 使用 numpy 创建一个没有参数的神经网络层。然后使用 scipy 创建一个具有可学习权重的神经网络层。 扩展 PyTorch,前端 API,C++,CUDA 使用自定义 C++ 算子扩展 TorchScript 在 C++ 中实现自定义 TorchScript 算子,如何将其构建为共享库,如何在 Python 中使用它定义 TorchScript 模型,以及最后如何在 C++ 应用中加载它以进行推理工作负载。 扩展 PyTorch,前端 API,TorchScript,C++ 使用自定义 C++ 类扩展 TorchScript 这是自定义算子教程的续篇,介绍了我们构建的用于同时将 C++ 类绑定到 TorchScript 和 Python 的 API。 扩展 PyTorch,前端 API,TorchScript,C++ TorchScript 中的动态并行 本教程介绍了在 TorchScript 中进行 *动态算子间并行* 的语法。 前端 API,TorchScript,C++ 在 Raspberry Pi 4 上进行实时推理 本教程介绍了如何在 Raspberry Pi 4 上以 30 帧/秒的速度运行量化和融合模型。 TorchScript,模型优化,图像/视频,量化 C++ 前端中的 Autograd autograd 包有助于构建灵活且动态的神经网络。在本教程中,探索在 PyTorch C++ 前端进行 autograd 的几个示例 前端 API,C++ 在 C++ 中注册分派算子 dispatcher 是 PyTorch 的一个内部组件,负责确定当你调用像 torch::add 这样的函数时,实际应该运行什么代码。 扩展 PyTorch,前端 API,C++ 在 C++ 中为新后端扩展 Dispatcher 学习如何扩展 dispatcher 以添加一个位于 pytorch/pytorch 仓库之外的新设备,并维护它以与原生 PyTorch 设备保持同步。 扩展 PyTorch,前端 API,C++ 通过 PrivateUse1 促进新后端集成 学习如何集成一个位于 pytorch/pytorch 仓库之外的新后端,并维护它以与原生 PyTorch 后端保持同步。 扩展 PyTorch,前端 API,C++ 自定义函数教程:二次反向传播 学习如何编写支持二次反向传播的自定义 autograd 函数。 扩展 PyTorch,前端 API 自定义函数教程:融合卷积和批量归一化 学习如何创建自定义 autograd 函数,将批量归一化融合到卷积中以提高内存使用效率。 扩展 PyTorch,前端 API 前向自动微分 学习如何使用前向自动微分。 前端 API Jacobians, Hessians, hvp, vhp 等 学习如何使用 torch.func 计算高级 autodiff 量。 前端 API 模型集成 学习如何使用 torch.vmap 集成模型。 前端 API 逐样本梯度 学习如何使用 torch.func 计算逐样本梯度。 前端 API 神经切核 学习如何使用 torch.func 计算神经切核。 前端 API PyTorch 中的性能分析 学习如何使用 PyTorch Profiler 基准测试你的模块性能。 模型优化,最佳实践,性能分析 TensorBoard 中的性能分析 学习如何使用 TensorBoard 插件分析你的模型性能。 模型优化,最佳实践,性能分析,TensorBoard 超参数调优教程 学习如何使用 Ray Tune 找到模型性能最佳的超参数组合。 模型优化,最佳实践 Parametrizations 教程 学习如何使用 torch.nn.utils.parametrize 为你的参数添加约束(例如,使其正交、对称正定、低秩...)。 模型优化,最佳实践 剪枝教程 学习如何使用 torch.nn.utils.prune 稀疏化你的神经网络,以及如何扩展它以实现你自己的自定义剪枝技术。 模型优化,最佳实践 如何通过将优化器步骤融合到反向传播中来节省内存 学习一种通过使用内存快照将优化器步骤融合到反向传播中来节省内存的技术。 模型优化,最佳实践,CUDA,前端 API (beta) 使用半结构化稀疏加速 BERT 训练 BERT,将其剪枝为 2:4 稀疏,然后通过半结构化稀疏和 torch.compile 加速,实现 2 倍推理加速。 文本,模型优化 (beta) 对 LSTM 词语言模型进行动态量化 将动态量化(最简单的量化形式)应用于基于 LSTM 的下一词预测模型。 文本,量化,模型优化 (beta) 对 BERT 进行动态量化 对 BERT(来自 Transformer 的双向嵌入表示)模型应用动态量化。 文本,量化,模型优化 (beta) 计算机视觉的量化迁移学习教程 使用量化模型扩展计算机视觉迁移学习教程。 图像/视频,量化,模型优化 (beta) 在 PyTorch 的 Eager 模式下进行静态量化 本教程展示了如何进行训练后静态量化。 量化 从第一性原理深入理解 PyTorch Intel CPU 性能 关于使用 Intel® Extension for PyTorch 优化的 TorchServe 推理框架的案例研究。 模型优化,生产 从第一性原理深入理解 PyTorch Intel CPU 性能 (第二部分) 关于使用 Intel® Extension for PyTorch 优化的 TorchServe 推理框架的案例研究 (第二部分)。 模型优化,生产 使用 Ax 进行多目标神经架构搜索 学习如何使用 Ax 搜索架构,找到精度和延迟之间的最佳权衡。 模型优化,最佳实践,Ax,TorchX torch.compile 教程 使用最新的 PyTorch 编译器解决方案 torch.compile,通过最小的代码更改加速你的模型。 模型优化 Inductor CPU 后端调试和性能分析 学习使用 Inductor CPU 后端对 ``torch.compile`` 进行使用、调试和性能分析。 模型优化 (beta) 使用 SCALED DOT PRODUCT ATTENTION 实现高性能 Transformer 本教程探索了新的 torch.nn.functional.scaled_dot_product_attention 以及如何使用它构建 Transformer 组件。 模型优化,注意力,Transformer 卷积神经网络中的知识蒸馏 学习如何使用更强大的模型作为教师模型来提高轻量级模型的精度。 模型优化,图像/视频 通过将 nn.Transformer 替换为 Nested Tensors 和 torch.compile() 来加速 PyTorch Transformer 本教程介绍了使用原生 PyTorch 实现 Transformer 的推荐最佳实践。 Transformer PyTorch 分布式概述 简要回顾分布式包中的所有概念和特性。使用本文档找到最适合你的应用的分布式训练技术。 并行与分布式训练 PyTorch 中的分布式数据并行 - 视频教程 本系列视频教程将引导你了解如何通过 DDP 在 PyTorch 中进行分布式训练。 并行与分布式训练 单机模型并行最佳实践 学习如何实现模型并行,这是一种分布式训练技术,将单个模型分割到不同的 GPU 上,而不是在每个 GPU 上复制整个模型 并行与分布式训练 分布式数据并行入门 学习分布式数据并行与数据并行之间的基本区别以及何时使用,并通过示例进行设置。 并行与分布式训练 使用 PyTorch 编写分布式应用 设置 PyTorch 的分布式包,使用不同的通信策略,并了解包的一些内部机制。 并行与分布式训练 使用 Tensor Parallel 训练大型 Transformer 模型 学习如何使用 Tensor Parallel 包训练大型模型。 并行与分布式训练 使用 Cpp 扩展自定义 Process Group 后端 使用自定义集合通信实现扩展 ProcessGroup。 并行与分布式训练 分布式 RPC 框架入门 学习如何使用 torch.distributed.rpc 包构建分布式训练。 并行与分布式训练 使用分布式 RPC 框架实现参数服务器 演练一个使用 PyTorch 分布式 RPC 框架实现参数服务器的简单示例。 并行与分布式训练 分布式流水线并行入门 演示如何使用 torch.distributed.pipelining 实现流水线并行。 并行与分布式训练 使用异步执行实现批量 RPC 处理 学习如何使用 rpc.functions.async_execution 实现批量 RPC。 并行与分布式训练 结合使用 Distributed DataParallel 和 Distributed RPC Framework 演练一个如何结合使用分布式数据并行和分布式模型并行的简单示例。 并行与分布式训练 Fully Sharded Data Parallel (FSDP) 入门 学习如何使用 Fully Sharded Data Parallel 包训练模型。 并行与分布式训练 使用 Fully Sharded Data Parallel (FSDP) 进行高级模型训练 探索使用 Fully Sharded Data Parallel (FSDP) 包进行高级模型训练。 并行与分布式训练 Libuv TCPStore 后端入门 TCPStore 现在使用新的服务器后端,连接速度更快,可扩展性更好。 并行与分布式训练 导出到 ExecuTorch 教程 了解如何使用 ExecuTorch,这是一个统一的机器学习栈,用于将 PyTorch 模型降级到边缘设备。 边缘 在 C++ 中运行 ExecuTorch 模型教程 学习如何在 C++ 中加载和执行 ExecuTorch 模型 边缘 使用 ExecuTorch SDK 对模型进行性能分析 探索如何使用 ExecuTorch SDK 对 ExecuTorch 模型进行性能分析、调试和可视化 边缘 构建一个 ExecuTorch iOS 演示应用 探索如何设置 ExecuTorch iOS 演示应用,该应用使用 MobileNet v3 模型处理实时摄像头图像,利用了三个不同的后端:XNNPACK、Core ML 和 Metal Performance Shaders (MPS)。 边缘 构建一个 ExecuTorch Android 演示应用 学习如何为图像分割任务设置 ExecuTorch Android 演示应用,使用 DeepLab v3 模型和 XNNPACK FP32 后端。 边缘 将模型作为委托降低 学习如何使用 ExecuTorch 通过三种方法应用委托来加速你的程序:降低整个模块、将其与另一个模块组合,以及划分模块的一部分。 边缘 TorchRec 入门 TorchRec 是一个 PyTorch 领域库,旨在提供大规模推荐系统所需的常见稀疏和并行原语。 TorchRec,推荐系统 探索 TorchRec 分片 本教程通过使用 EmbeddingPlanner 和 DistributedModelParallel API 介绍了 embedding table 的分片方案。 TorchRec,推荐系统 TorchMultimodal 入门 TorchMultimodal 是一个提供模型、原语和示例用于训练多模态任务的库 TorchMultimodal 附加资源¶ PyTorch 示例 一组涵盖 Vision、Text、Reinforcement Learning 的 PyTorch 示例,你可以将其整合到现有工作中。 查看示例 PyTorch 速查表 PyTorch 关键元素的快速概述。 打开 GitHub 上的教程 从 GitHub 访问 PyTorch 教程。 前往 GitHub 在 Google Colab 上运行教程 学习如何将教程数据复制到 Google 云端硬盘,以便在 Google Colab 上运行教程。 打开