跳到主要内容

作业 2

此作业截止时间为2025 年 5 月 7 日星期三美国太平洋时间晚上 11:59。

包含 Colab 笔记本的起始代码可以在此处下载。

环境准备

在开始作业之前,请先熟悉推荐的工作流程。您还应该观看下面的 Colab 演练教程。

注意。确保定期保存笔记本 (File -> Save),以便在您离开作业且 Colab VM 断开连接时不会丢失进度。

虽然我们不正式支持本地开发,但我们添加了一个 requirements.txt 文件,您可以使用它来设置虚拟环境。

完成所有 Colab 笔记本除 collect_submission.ipynb 后,请继续执行提交说明。

学习目标

在本作业中,您将练习编写反向传播代码以及训练神经网络和卷积神经网络。本次作业的目标如下:

  • 实施批归一化和层归一化来训练深度网络。
  • 实施Dropout来规范网络。
  • 了解卷积神经网络的架构并进行训练练习。
  • 获得主要深度学习框架 PyTorch 的经验。
  • 理解并实现 RNN 网络。将它们与 CNN 网络相结合以实现图像描述。

问题 1:批归一化

在笔记本 BatchNormalization.ipynb 中,您将实现批归一化,并使用它来训练深度全连接网络。

问题 2:Dropout(随机失活)

笔记本 Dropout.ipynb 将帮助您实现 dropout 并探索其对模型泛化的影响。

问题 3:卷积神经网络

在笔记本 ConvolutionalNetworks.ipynb 中,您将实现卷积网络中常用的几个新层。

问题 4:使用 PyTorch 处理 CIFAR-10

在这一部分中,您将使用 PyTorch,这是一个流行且强大的深度学习框架。

打开PyTorch.ipynb。在那里,您将了解该框架的工作原理,最终在 CIFAR-10 上训练您自己设计的卷积网络,以获得最佳性能。

问题 5:使用基本 RNN 生成图像描述

笔记本 RNN_Captioning_pytorch.ipynb 将引导您完成普通循环神经网络的实现,并将其应用于 COCO 上的图像描述。

提交作业

重要。请确保提交的笔记本已运行且单元输出可见。

完成所有笔记本并填写必要的代码后,您需要按照以下说明提交您的作品:

1. 在 Colab 中打开 collect_submission.ipynb 并执行笔记本单元。

该笔记本/脚本将:

  • 将代码文件(.py 和 .ipynb)打包成名为 a2_code_submission.zip 的 ZIP 文件。
  • 将所有笔记本转换为单个 PDF 文件。

如果您成功提交此步骤,您应该看到以下显示消息:

### Done! Please submit a2_code_submission.zip and a2_inline_submission.pdf to Gradescope. ###

注意:完成所有笔记本后,请确认最近一次执行是按单元格从上到下的顺序进行的,否则可能影响 Gradescope 自动评分。如果顺序不一致,请在 Runtime 菜单中选择“Restart and Run All(重启并运行全部)”,重新启动内核后依次执行所有单元格。

2. 将 PDF 和 zip 文件提交到 Gradescope。

请记住在提交到 Gradescope 之前在本地下载 a2_code_submission.zip 和 a2_inline_submission.pdf。