作业 1
此作业截止时间为太平洋时间2025 年 4 月 23 日星期三晚上 11:59。
包含 Colab 笔记本的起始代码可以在此处下载。
环境准备
请观看下面的 Colab 演练教程,熟悉推荐的工作流程:
注意。确保定期保存笔记本 (File -> Save),以便在您离开作业且 Colab VM 断开连接时不会丢失进度。
完成所有 Colab 笔记本除 collect_submission.ipynb 后,请继续执行提交说明。
学习目标
在本作业中,您将练习基于 k 最近邻或 SVM/Softmax 分类器构建一个简单的图像分类流程。本次作业的目标如下:
- 了解基本的图像分类流程和数据驱动方法(训练/预测阶段)。
- 了解训练/验证/测试分割以及使用验证数据进行超参数调节。
- 提高使用 numpy 编写高效向量化代码的能力。
- 实现并应用 k 最近邻 (kNN) 分类器。
- 实现并应用 Softmax 分类器。
- 实现并应用两层神经网络分类器。
- 实现并应用全连接网络分类器。
- 了解这些分类器之间的差异和权衡。
- 通过使用更高层次的表示(而不是原始像素)来基本了解性能改进,例如颜色直方图、方向梯度直方图(HOG)特征等。
问题 1:k 近邻分类器
笔记本 knn.ipynb 将引导您完成 kNN 分类器的实现。
问题 2:实现 Softmax 分类器
笔记本 softmax.ipynb 将引导您完成 Softmax 分类器的实现。
问题 3:两层神经网络
笔记本 two_layer_net.ipynb 将引导您完成两层神经网络分类器的实现。
问题 4:更高层次的表示——图像特征
笔记本 features.ipynb 将检查通过使用更高层次的表示所获得的改进 与使用原始像素值相反。
问题 5:训练全连接神经网络
笔记本 FullyConnectedNets.ipynb 将引导您完成完全连接网络的实施。
提交作业
重要。请确保提交的笔记本已运行且单元输出可见。
完成所有笔记本并填写必要的代码后,您需要按照以下说明提交您的作品:
1. 在 Colab 中打开 collect_submission.ipynb 并执行笔记本单元。
该笔记本/脚本将:
- 将代码文件(
.py和.ipynb)打包成名为a1_code_submission.zip的 ZIP 文件。 - 将所有笔记本转换为单个 PDF 文件。
如果您成功提交此步骤,您应该看到以下显示消息:
### Done! Please submit a1_code_submission.zip and a1_inline_submission.pdf to Gradescope. ###
2. 将 PDF 和 zip 文件提交到 Gradescope。
请记住在提交到 Gradescope 之前在本地下载 a1_code_submission.zip 和 a1_inline_submission.pdf。