deep-learning-v2-pytorch
deep-learning-v2-pytorch 是 Udacity 深度学习纳米学位项目的官方开源配套资源库,旨在通过实战练习帮助学习者掌握基于 PyTorch 框架的深度学习技术。它主要解决了初学者在理论向实践转化过程中缺乏系统代码示例和项目指导的痛点,提供了从基础神经网络到前沿模型的完整实现路径。
该资源库特别适合希望系统提升深度学习工程能力的开发者、学生及研究人员使用。内容涵盖广泛的教程笔记与项目代码,引导用户亲手构建卷积神经网络(CNN)、循环神经网络(RNN)以及生成对抗网络(GAN)。其独特的技术亮点在于不仅讲解了模型架构,还深入探讨了权重初始化、批量归一化等影响训练效果的关键细节,并包含了情感分析、图像风格迁移、词向量(Word2Vec)以及利用预训练模型进行迁移学习等经典案例。无论是想入门 PyTorch 的新手,还是寻求复现经典算法的实践者,都能在这里找到结构清晰、即拿即用的代码资源,从而高效地夯实深度学习基础。
使用场景
某初创公司的算法工程师需要快速构建一个能识别花卉品种并分析用户评论情感的移动端原型,以验证新农业 App 的核心功能。
没有 deep-learning-v2-pytorch 时
- 从零编写卷积神经网络(CNN)代码耗时极长,且在处理 MNIST 或 CIFAR10 等标准数据集时,常因调试数据预处理管道而陷入困境。
- 面对花卉分类任务,不得不收集海量数据从头训练模型,导致算力成本高昂且收敛速度极慢,难以在短期内产出可用结果。
- 缺乏现成的情感分析参考实现,在处理文本序列数据时,对循环神经网络(RNN)和 Word2Vec 嵌入层的搭建毫无头绪,容易陷入理论细节而无法落地。
- 想要实现图像风格迁移等进阶功能时,找不到关于损失函数定义和预训练模型调用的清晰指引,只能盲目查阅晦涩的学术论文。
使用 deep-learning-v2-pytorch 后
- 直接复用仓库中成熟的 CNN 教程笔记本,快速完成了手写数字和物体分类的基础验证,大幅缩短了数据加载与模型定义的调试周期。
- 利用迁移学习(Transfer Learning)章节的 VGGnet 实战代码,仅用少量花卉图片即可微调出高精度分类器,显著降低了算力门槛并加速了原型迭代。
- 参照情感分析 RNN 和 Word2Vec 的完整实现,迅速构建起能够理解用户评论正负向的文本模块,确保了自然语言处理任务的顺利交付。
- 基于风格转移项目的开源代码,轻松提取图像特征并定义损失函数,成功为 App 添加了极具吸引力的滤镜功能,无需深究复杂的数学推导。
deep-learning-v2-pytorch 通过提供结构化的实战笔记和工业级代码模板,将深度学习从理论探索转化为可快速落地的工程解决方案。
运行环境要求
- Linux
- macOS
- Windows
未说明
未说明

快速开始
深度学习(PyTorch)- ND101 v7
此仓库包含与 Udacity 的 深度学习 v7 Nanodegree 项目 相关的资料。它由一系列关于不同深度学习主题的教程笔记本组成。在大多数情况下,这些笔记本会引导你实现卷积网络、循环网络和生成对抗网络等模型。此外还涵盖了权重初始化和批量归一化等其他主题。
这里也有一些用作 Nanodegree 项目的小笔记本。在实际的课程中,这些项目会由 Udacity 的评审人员进行人工审核,但这里的起始代码同样可供参考。
目录
教程
神经网络入门
- 神经网络入门:学习如何实现梯度下降,并将其应用于预测学生录取数据中的模式。
- 使用 NumPy 进行情感分析:Andrew Trask 将带领你构建一个情感分析模型,以预测一段文本是正面还是负面。
- PyTorch 入门:学习如何在 PyTorch 中构建神经网络,并使用预训练网络来实现最先进的图像分类器。
卷积神经网络
- 卷积神经网络:可视化构成 CNN 的各层输出。学习如何定义并训练一个 CNN 来分类 MNIST 数据集,这是一个在机器学习和深度学习领域非常著名的手写数字数据集。此外,还将定义并训练一个 CNN 来分类 CIFAR10 数据集 中的图像。
- 迁移学习:在实践中,大多数人并不会从头开始在大型数据集上训练自己的网络;他们通常会使用像 VGGnet 这样的 预训练 网络。在这里,你将利用 VGGnet 帮助对花卉图像进行分类,而无需从零开始训练端到端的网络。
- 权重初始化:探索网络权重的初始化方式如何影响性能。
- 自编码器:使用 PyTorch 中的前馈网络和卷积网络构建用于图像压缩和去噪的模型。
- 风格迁移:利用预训练网络提取图像的风格和内容特征。根据 Gatys 等人的论文 使用卷积神经网络进行图像风格迁移,实现风格迁移。定义适当的损失函数,迭代生成属于你自己的风格迁移目标图像!
循环神经网络
- 循环神经网络简介(时间序列与字符级 RNN):循环神经网络能够利用数据序列的信息,例如文本中的字符序列;学习如何在 PyTorch 中实现这些网络,以完成各种任务。
- 词嵌入(Word2Vec):实现 Word2Vec 模型,以找到词语的语义表示,用于自然语言处理。
- 情感分析 RNN:实现一个循环神经网络,可以预测电影评论文本是正面还是负面。
- 注意力机制:实现注意力机制,并将其应用于注释向量。
生成对抗网络
- 基于 MNIST 的生成对抗网络:在 MNIST 数据集上训练一个简单的生成对抗网络。
- 批量归一化:学习如何通过批量归一化提高训练速度和网络稳定性。
- 深度卷积生成对抗网络(DCGAN):实现一个 DCGAN,以 Street View House Numbers (SVHN) 数据集为基础生成新图像。
- CycleGAN:实现一个 CycleGAN,该网络专为从无配对和未标注的数据中学习而设计;使用训练好的生成器将夏季图像转换为冬季图像,反之亦然。
部署模型(使用 AWS SageMaker)
- 所有练习和项目笔记本 关于模型部署的课程内容都可以在链接的 GitHub 仓库中找到。学习如何使用 AWS SageMaker 部署预训练模型。
项目
- 预测共享单车使用模式:在 NumPy 中实现一个神经网络,以预测自行车租赁情况。
- 犬种分类器:使用 PyTorch 构建一个卷积神经网络,将任何图像(甚至人脸图像)分类为特定的犬种。
- 电视剧剧本生成:训练一个循环神经网络,以 Seinfeld 对话的风格生成剧本。
- 人脸生成:使用 DCGAN 和 CelebA 数据集生成新的、逼真的真人脸图像。
选修材料
- TensorFlow 入门:开始使用 TensorFlow 构建神经网络。
- Keras:学习如何使用 Keras 构建神经网络和卷积神经网络。
依赖项
使用 Anaconda 配置和管理您的环境
根据 Anaconda 的文档:
Conda 是一个开源的包管理和环境管理系统,用于安装多个版本的软件包及其依赖项,并在它们之间轻松切换。它适用于 Linux、OS X 和 Windows 操作系统,最初为 Python 程序设计,但也可以打包和分发任何软件。
概述
使用 Anaconda 包括以下步骤:
- 在您的计算机上安装
miniconda,选择适合您操作系统的最新 Python 版本。如果您已经安装了conda或miniconda,则可以跳过此步骤,直接进入第 2 步。 - 创建并激活一个新的
conda环境。
* 每次您希望进行练习时,请务必激活您的 conda 环境!
1. 安装
下载与您的系统匹配的最新版 miniconda。
| Linux | Mac | Windows | |
|---|---|---|---|
| 64位 | 64位(bash 安装程序) | 64位(bash 安装程序) | 64位(exe 安装程序) |
| 32位 | 32位(bash 安装程序) | 32位(exe 安装程序) |
安装miniconda 到您的机器上。详细说明:
- Linux: https://conda.io/projects/conda/en/latest/user-guide/install/linux.html
- Mac: https://conda.io/projects/conda/en/latest/user-guide/install/macos.html
- Windows: https://conda.io/projects/conda/en/latest/user-guide/install/windows.html
2. 创建并激活环境
对于 Windows 用户,以下命令需要在 Anaconda 提示符 中执行,而不是在普通的 Windows 终端窗口中。而对于 Mac 用户,使用普通终端窗口即可。
Git 和版本控制
这些说明还假设您已安装 git,以便通过终端与 GitHub 进行交互。如果没有安装,您可以先使用以下命令进行安装:
conda install git
如果您想深入了解版本控制以及如何在命令行中使用 git,可以查看我们的免费课程:使用 Git 进行版本控制。
现在,我们已经准备好创建本地环境了!
- 克隆仓库,并进入下载的文件夹。由于包含图像数据,克隆过程可能需要一两分钟。
git clone https://github.com/udacity/deep-learning-v2-pytorch.git
cd deep-learning-v2-pytorch
创建(并激活)一个名为
deep-learning的新环境,使用 Python 3.6。如果提示是否继续安装(Proceed [y]/n),请输入 y。- Linux 或 Mac:
conda create -n deep-learning python=3.6 source activate deep-learning- Windows:
conda create --name deep-learning python=3.6 activate deep-learning此时,您的命令行应该显示类似以下内容:
(deep-learning) <User>:deep-learning-v2-pytorch <user>$。其中(deep-learning)表示您的环境已成功激活,您可以继续安装其他包。安装 PyTorch 和 torchvision;这将安装最新版本的 PyTorch。
- Linux 或 Mac:
conda install pytorch torchvision -c pytorch- Windows:
conda install pytorch -c pytorch pip install torchvision安装一些所需的 pip 包,这些包在 requirements.txt 文件中列出(包括 OpenCV)。
pip install -r requirements.txt
- 完成!
现在,大多数深度学习相关的库都已经可用。偶尔,您可能会遇到带有额外 requirements 文件的仓库,这些文件通常用于支持 TensorFlow 和 Keras 等框架。在这种情况下,建议您在现有环境中再安装相关库,或者为特定项目创建一个新的环境。
假设您的 deep-learning 环境仍然处于激活状态,您可以导航到主仓库并开始查看笔记本:
cd
cd deep-learning-v2-pytorch
jupyter notebook
完成工作后,只需关闭终端窗口即可退出环境。
常见问题
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
gemini-cli
gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。
markitdown
MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器