本项目包含一系列Python深度学习算法和计算机视觉实现的练习,涵盖了从基础算法到OpenCV图像处理的多个方面。学生需要补全 exercises 目录下的 Python 文件中缺失的代码,并通过本地测试或 GitHub Actions 自动测试来验证自己的实现是否正确。
exercises/iou.py: 实现目标检测中的交并比 (IoU) 计算。exercises/nms.py: 实现目标检测中的非极大值抑制 (NMS) 算法 (包含 IoU 计算)。exercises/conv.py: 手写实现二维卷积操作。exercises/leaky_relu.py: 实现 LeakyReLU 激活函数。exercises/maxpool.py: 实现最大池化操作。exercises/cross_entropy.py: 实现交叉熵损失函数。exercises/smooth_l1.py: 实现 Smooth L1 损失函数。
exercises/image_processing.py: 使用 OpenCV 实现图像边缘检测等基本处理。exercises/contour_detection.py: 使用 OpenCV 实现图像轮廓检测。
- Fork 本仓库: 将此仓库 Fork 到您自己的 GitHub 账户。
 - 克隆仓库: 将您 Fork 的仓库克隆到本地计算机。
 - 设置环境: 参考下方的"环境要求"和"运行方法"安装必要的依赖。
 - 打开练习文件: 在 
exercises/目录中找到对应的.py练习文件(例如exercises/iou.py)。 - 阅读说明: 仔细阅读文件顶部的文档字符串和注释,理解需要实现的功能和提示。
 - 编写代码: 在标记为 
# 请在此处编写代码或有pass语句的地方,根据提示完成函数或方法的实现。 - 本地测试 (可选但推荐): 在终端运行 
python -m pytest tests/ -v来检查您的代码是否能通过测试用例。您可以先只关注您正在做的那个练习对应的测试文件,例如python -m pytest tests/test_iou.py -v。 - 提交与推送: 将您修改后的代码提交 (commit) 并推送 (push) 到您 Fork 的 GitHub 仓库。
 - 查看自动测试结果: 推送代码会自动触发 GitHub Actions 工作流。若未触发工作流,请手动触发。您可以在 GitHub 仓库页面的 "Actions" 标签页查看运行状态、测试结果和计算出的分数。
 
建议按照练习文件名的隐含顺序或上述列表顺序学习,从基础算法到图像处理应用:
- 先掌握目标检测的基础算法 (
iou.py,nms.py)。 - 学习深度学习的核心组件实现 (
conv.py,leaky_relu.py,maxpool.py,cross_entropy.py,smooth_l1.py)。 - 最后学习 OpenCV 图像处理 (
image_processing.py,contour_detection.py)。 
- Python 3.10 (与 GitHub Actions 工作流一致)
 - 必要的依赖库见 
requirements.txt文件,主要包括:numpyopencv-pythonpytest
 
Python-Training-Camp-Advanced/
├── .github/workflows/     # GitHub Actions 工作流配置
│   └── test.yml
├── exercises/             # 学员练习目录 (需要填空的 .py 文件)
│   ├── contour_detection.py
│   ├── conv.py
│   ├── cross_entropy.py
│   ├── image_processing.py
│   ├── iou.py
│   ├── leaky_relu.py
│   ├── maxpool.py
│   ├── nms.py
│   └── smooth_l1.py
├── picture/               # 可能包含测试用的图片资源
├── tests/                 # Pytest 测试文件
│   ├── test_contour_detection.py
│   ├── test_conv.py
│   ├── # ... (其他测试文件)
│   └── test_smooth_l1.py
├── .gitignore             # Git 忽略文件配置
├── README.md              # 项目说明文件 (本文件)
├── requirements.txt       # Python 依赖库列表
├── score_calculator.py    # 用于计算分数的脚本
└── test_score.txt         # 分数计算结果(示例或运行时生成)
- 安装依赖:
# 建议在虚拟环境中操作 # python -m venv venv # source venv/bin/activate # Linux/macOS # venv\Scripts\activate # Windows pip install -r requirements.txt
 - 本地运行测试:
# 运行所有测试 python -m pytest tests/ -v # 运行特定测试文件 python -m pytest tests/test_iou.py -v
 - 自动测试与评分 (GitHub Actions):
- 将您的代码 
git push到您 Fork 的 GitHub 仓库。 - 稍等片刻,进入 GitHub 仓库页面,点击 "Actions" 标签。
 - 找到最新的工作流运行实例,点击进入查看详情。
 - 您可以查看测试日志、
pytest的输出以及score_calculator.py生成的分数报告 (test_score.txt会作为 artifact 上传)。 
 - 将您的代码 
 
- 每个练习文件中都有详细的注释说明和提示,请仔细阅读。
 - 需要填写的代码部分主要是完成带有 
pass语句的函数体。 - 务必先独立思考和实现,必要时再参考 
answers/目录下的答案。 
当您推送代码后,GitHub Actions 会自动执行以下流程:
- 运行 
pytest对您在exercises/目录下的代码进行测试。 - 即使部分测试失败,流程也会继续 ( благодаря 
continue-on-error: true)。 - 运行 
score_calculator.py脚本,该脚本可能会根据pytest的测试结果(例如解析生成的test-results.xml文件)来计算一个分数。 - 最终的分数会保存在 
test_score.txt文件中。 - 您可以在 GitHub Actions 的运行日志中看到分数报告的打印输出。
 test_score.txt和test-results.xml文件会作为构建产物 (Artifacts) 上传,您可以在 Actions 运行详情页面下载它们以查看详细结果。
最终评价基于 score_calculator.py 计算出的分数。