# 深度学习 Lab6

**截止时间：2026-04-16 23:59**  
**提交地址：** https://send2me.cn/xK8kolo7/TqK8XAOFtWEyPw

## 实验内容
使用 **NumPy** 补全一个卷积神经网络的关键计算过程，并基于**给定的模型参数**完成前向计算与验证。
 
**注意**：本实验不要求重新训练模型，而是要求在补全代码后，能够正确load提供的模型参数，完成卷积网络的相关计算。

本次实验对应的是一个用于图像分类的简单 CNN，输入为 **CIFAR-10** 风格数据：
- 输入图片大小为 `3 × 32 × 32`
- 输出为 10 个类别
- 网络包含卷积层、ReLU、池化层和全连接层

## 实验文件说明
- `exercise_cnn.py`：主程序，用于读取数据、加载模型并调用 NumPy 版本 CNN
- `cnn_np_version.py`：需要补全的 NumPy 版本代码
- `cnn_model.pt`：提供好的模型参数文件，需要加载使用
- `evaluation.py`：用于评估预测结果准确率的参考脚本
- `data/`：实验训练与测试数据与预测结果文件目录

## TODO
请在 `cnn_np_version.py` 中补全空白函数，并在完成后替换原pass语句，主要包括：

- 全连接层 `linear` backward
- 卷积层 `Conv2D` backward
- 池化层 `MaxPool2D` backward
- 整个 CNN 的backward
- 参数更新

## 如何运行
在实验目录下运行：

```bash
python exercise_cnn.py
```

## 提交内容
请按课程要求提交完成后的文件。 
文件命名：学号_姓名_Lab6.zip 
压缩包内应包含：
- 已补全的`cnn_np_version.py`

## 说明
- 不能修改项目其余代码，只能补全`cnn_np_version.py`中的空白函数，并在完成后替换原pass语句
- 不能import其他工具包
- 请独立完成，不要直接照搬往年solution或他人代码
- 请于Deadline前提交，过时不候
- 实验评分包括但不限于代码正确性、完整性等
