欢迎来到PyTorch教程¶ PyTorch教程有什么新内容? 编译自动梯度:为torch.compile捕获更大的反向图 通过区域编译减少torch.compile冷启动编译时间 TorchRec 简介 (prototype) 用于调试卡住作业的飞行记录器 (prototype) 如何在Windows CPU上使用TorchInductor (prototype) 在CPU上使用Max-Autotune编译以获得更好的性能 (prototype) Autoloading Out-of-Tree Extension 学习基础知识 熟悉PyTorch的概念和模块。在本快速入门指南中,学习如何加载数据、构建深度神经网络、训练和保存模型。 开始使用PyTorch PyTorch 食谱 即用即部署的 PyTorch 代码示例。 探索食谱 All 学习基础知识 使用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 模型。 图像/视频 计算机视觉的迁移学习教程 使用迁移学习训练卷积神经网络进行图像分类。 图像/视频 优化视觉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 Runtime 部署之前将其转换为 ONNX。 生产, ONNX, 后端 ONNX 注册表简介 演示如何通过使用 ONNX 注册表来解决不支持的运算符的端到端流程。 生产, ONNX, 后端 强化学习 (DQN) 学习如何使用 PyTorch 在 OpenAI Gym 的 CartPole-v0 任务上训练一个深度 Q 学习 (DQN) 代理。 强化学习 使用TorchRL进行强化学习(PPO) 学习如何使用PyTorch和TorchRL在Gym的倒立摆任务上训练一个近端策略优化代理。 强化学习 训练一个玩马里奥的强化学习代理 使用PyTorch训练一个双Q学习代理来玩马里奥。 强化学习 循环DQN 使用TorchRL训练循环策略 强化学习 编写DDPG损失函数 使用TorchRL编写DDPG损失函数 强化学习 编写你的环境和转换 使用TorchRL编写Pendulum代码 强化学习 使用Flask通过REST API在Python中部署PyTorch 使用Flask部署一个PyTorch模型,并通过一个预训练的DenseNet 121模型的示例来暴露一个用于模型推理的REST API,该模型用于检测图像。 生产 TorchScript 简介 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传递,将批量归一化融合到卷积中,以提高推理期间的性能。 FX 使用FX构建一个简单的性能分析器 构建一个简单的FX解释器来记录操作、模块和函数调用的运行时间并报告统计信息 FX (beta) PyTorch中的Channels Last内存格式 了解Channels Last内存格式的概述,并理解它如何用于在内存中保留维度的NCHW张量排序。 内存格式,最佳实践,前端API 使用 PyTorch C++ 前端 通过训练一个 DCGAN —— 一种生成模型 —— 来生成 MNIST 数字图像,展示使用 C++ 前端训练模型的端到端示例。 Frontend-APIs,C++ PyTorch 自定义操作符登陆页面 这是与PyTorch中自定义操作符相关的所有内容的登陆页面。 扩展-PyTorch,前端-API,C++,CUDA 自定义Python操作符 在Python中创建自定义操作符。适用于将Python函数封装为黑盒,以便与torch.compile一起使用。 扩展-PyTorch,前端-APIs,C++,CUDA 编译自动梯度:为``torch.compile``捕获更大的反向图 学习如何使用编译自动梯度来捕获更大的反向图。 模型优化,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,前端-APIs,TorchScript,C++ TorchScript中的动态并行性 本教程介绍了在TorchScript中实现*动态互操作并行性*的语法。 Frontend-APIs,TorchScript,C++ 在树莓派4上进行实时推理 本教程介绍了如何在树莓派4上以30帧每秒的速度运行量化和融合模型。 TorchScript,模型优化,图像/视频,量化 C++前端中的自动梯度 自动梯度包有助于构建灵活和动态的神经网络。在本教程中,探索了在PyTorch C++前端中进行自动梯度的几个示例。 Frontend-APIs,C++ 在C++中注册一个分派操作符 分派器是PyTorch的一个内部组件,负责确定当你调用像torch::add这样的函数时,应该实际运行什么代码。 扩展-PyTorch,前端-APIs,C++ 在C++中为新后端扩展调度器 学习如何扩展调度器以添加一个位于pytorch/pytorch仓库之外的新设备,并保持其与原生PyTorch设备同步。 扩展-PyTorch,前端-APIs,C++ 通过PrivateUse1促进新后端集成 学习如何集成一个位于pytorch/pytorch仓库之外的新后端,并保持其与原生PyTorch后端的同步。 扩展-PyTorch,前端-APIs,C++ 自定义函数教程:双重反向传播 学习如何编写支持双重反向传播的自定义autograd函数。 扩展-PyTorch,前端-API 自定义函数教程:融合卷积和批量归一化 学习如何创建一个自定义的自动求导函数,将批量归一化融合到卷积中,以提高内存使用效率。 扩展-PyTorch,前端-APIs 前向模式自动微分 学习如何使用前向模式自动微分。 前端API 雅可比矩阵、海森矩阵、hvp、vhp等 学习如何使用torch.func计算高级自动微分量 前端API 模型集成 学习如何使用 torch.vmap 集成模型 前端-APIs 每个样本的梯度 学习如何使用 torch.func 计算每个样本的梯度 前端API 神经切线核 学习如何使用 torch.func 计算神经切线核 前端API PyTorch中的性能分析 学习如何使用PyTorch Profiler来评估你的模块性能。 模型优化,最佳实践,性能分析 TensorBoard中的性能分析 学习如何使用TensorBoard插件来分析和优化模型的性能。 模型优化,最佳实践,性能分析,TensorBoard 超参数调优教程 学习如何使用Ray Tune为您的模型找到最佳的超参数组合。 模型优化,最佳实践 参数化教程 学习如何使用 torch.nn.utils.parametrize 对参数施加约束(例如使它们正交、对称正定、低秩...) 模型优化,最佳实践 剪枝教程 学习如何使用 torch.nn.utils.prune 来稀疏化你的神经网络,以及如何扩展它以实现你自己的自定义剪枝技术。 模型优化,最佳实践 如何通过将优化器步骤融合到反向传递中来节省内存 学习一种通过使用内存快照将优化器步骤融合到反向传递中的内存节省技术。 模型优化,最佳实践,CUDA,前端API (测试版) 使用半结构化稀疏加速BERT 训练BERT,将其修剪为2:4稀疏,然后使用半结构化稀疏和torch.compile加速,以实现2倍的推理速度提升。 文本, 模型优化 (beta) LSTM单词语言模型上的动态量化 应用动态量化,这是量化中最简单的形式,到一个基于LSTM的下一个单词预测模型。 文本,量化,模型优化 (测试版) BERT上的动态量化 在BERT(来自Transformers的双向嵌入表示)模型上应用动态量化。 文本,量化,模型优化 (测试版) 计算机视觉量化迁移学习教程 扩展了使用量化模型的计算机视觉迁移学习教程。 图像/视频,量化,模型优化 (测试版) 在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 后端调试与分析 学习如何使用、调试和性能分析 ``torch.compile`` 与 Inductor CPU 后端。 模型优化 (测试版) 使用SCALED DOT PRODUCT ATTENTION实现高性能Transformer 本教程探讨了新的torch.nn.functional.scaled_dot_product_attention以及如何使用它来构建Transformer组件。 模型优化,注意力机制,Transformer 卷积神经网络中的知识蒸馏 学习如何使用更强大的模型作为教师来提高轻量级模型的准确性。 模型优化,图像/视频 通过使用嵌套张量和torch.compile()替换nn.Transformer来加速PyTorch Transformers 本教程介绍了使用原生PyTorch实现Transformers的推荐最佳实践。 Transformer PyTorch 分布式概述 简要介绍分布式包中的所有概念和功能。使用本文档找到最适合您应用程序的分布式训练技术。 并行与分布式训练 PyTorch中的分布式数据并行 - 视频教程 本系列视频教程将引导您通过DDP在PyTorch中进行分布式训练。 并行与分布式训练 单机模型并行最佳实践 学习如何实现模型并行,这是一种分布式训练技术,它将单个模型拆分到不同的GPU上,而不是在每个GPU上复制整个模型 并行与分布式训练 分布式数据并行入门 学习何时使用分布式数据并行与数据并行的基础知识,并通过一个示例来设置它。 并行与分布式训练 使用PyTorch编写分布式应用程序 设置PyTorch的分布式包,使用不同的通信策略,并深入了解该包的一些内部机制。 并行与分布式训练 使用Tensor Parallel进行大规模Transformer模型训练 学习如何使用Tensor Parallel包训练大型模型。 并行与分布式训练 使用Cpp扩展自定义进程组后端 使用自定义的集体通信实现扩展ProcessGroup。 并行与分布式训练 分布式RPC框架入门 学习如何使用torch.distributed.rpc包构建分布式训练。 并行与分布式训练 使用分布式RPC框架实现参数服务器 通过一个简单的示例,了解如何使用PyTorch的分布式RPC框架实现参数服务器。 并行与分布式训练 分布式管道并行性介绍 演示如何使用 torch.distributed.pipelining 实现管道并行性 并行与分布式训练 使用异步执行实现批量RPC处理 学习如何使用rpc.functions.async_execution来实现批量RPC 并行与分布式训练 结合分布式数据并行与分布式RPC框架 通过一个简单的示例,了解如何将分布式数据并行与分布式模型并行结合起来。 并行与分布式训练 开始使用完全分片数据并行(FSDP) 学习如何使用完全分片数据并行包训练模型。 并行与分布式训练 使用完全分片数据并行(FSDP)进行高级模型训练 探索使用完全分片数据并行包进行高级模型训练。 并行与分布式训练 Libuv TCPStore 后端介绍 TCPStore 现在使用一个新的服务器后端,以实现更快的连接和更好的可扩展性。 并行与分布式训练 导出到ExecuTorch教程 了解如何使用ExecuTorch,这是一个统一的ML堆栈,用于将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演示应用 学习如何使用DeepLab v3模型和XNNPACK FP32后端为图像分割任务设置ExecuTorch Android演示应用。 边缘 将模型降级为委托 学习通过三种方法使用ExecuTorch加速您的程序:降级整个模块,将其与另一个模块组合,以及分区模块的部分。 边缘 TorchRec 简介 TorchRec 是一个 PyTorch 领域库,旨在为大规模推荐系统提供所需的常见稀疏性和并行性原语。 TorchRec, 推荐系统 探索TorchRec分片 本教程涵盖了通过使用EmbeddingPlanner和DistributedModelParallel API进行嵌入表分片的方案。 TorchRec,推荐系统 TorchMultimodal 简介 TorchMultimodal 是一个提供模型、原语和示例的库,用于训练多模态任务 TorchMultimodal 附加资源¶ PyTorch 示例 一组围绕 PyTorch 在视觉、文本、强化学习中的示例,您可以将其纳入现有工作中。 查看示例 PyTorch 速查表 快速概览 PyTorch 的基本元素。 Open GitHub上的教程 从GitHub访问PyTorch教程。 Go To GitHub 在Google Colab上运行教程 学习如何将教程数据复制到Google Drive,以便您可以在Google Colab上运行教程。 Open