Appearance
APOAI 2025 Mock Classifier
- 来源:
noai-mis/roai-solved/international-contests/apoai/2025-mock/02-classifier.ipynb - 类型:CV
- 原始资料:solution notebook
- 题面完整性:题面缺失;根据 notebook 代码推断
- 解法资料完整性:有解法 notebook
题面大意
这是一个图像二分类任务。Notebook 中定义 CNN/MyModel,训练时读取 images, labels,用 binary accuracy 评估,最后生成提交。具体业务语义在目录中未见独立题面。
数据特点
数据由图像和 0/1 标签构成,训练流程使用 PyTorch。由于是 mock 题,重点应在基础 CNN 训练、数据加载、增强和提交格式,而非复杂领域知识。
考点
考点是从零搭建图像分类管线:Dataset、DataLoader、CNN、loss、optimizer、验证、推理提交。若图像数量不大,过拟合控制和增强是关键。
涉及知识点
- PyTorch 图像 Dataset。
- CNN 二分类与 BCE loss。
- 数据增强:resize、crop、flip、color jitter。
- Accuracy 监控与 checkpoint。
- 提交文件生成。
解法思路
基础解法是小 CNN:多层卷积 + pooling + 全连接,输出 sigmoid 概率。训练时使用 BCEWithLogitsLoss,验证时阈值 0.5 转标签。若允许预训练,可迁移学习;但 mock notebook 看起来使用自定义模型,说明从零训练即可。
可选/多种解法
小 CNN:适合教学和低算力。
预训练 backbone 微调:若规则允许,可快速提升。
传统特征 + SVM:若图像结构简单,可用 HOG/颜色直方图。
特殊技巧
二分类不要在模型里先 sigmoid 再用 BCEWithLogitsLoss,否则数值不稳定。类别不平衡时要看 precision/recall 而不只 accuracy。
调参优化
这类基础二分类题先调验证划分和阈值,再调模型。建议记录 BCE loss、accuracy、precision/recall,并扫描 sigmoid 阈值,避免默认 0.5 不是最优。模型侧从小 CNN 的通道数、dropout、学习率、batch size、epoch 数和增强强度开始;如果训练准确率高而验证低,优先加增强、weight decay 和早停,而不是继续加层。若类别不平衡,调 pos_weight 或采样权重通常比改 backbone 更直接。
注意事项
独立题面缺失,具体标签含义和提交字段需以 notebook 为准。本文档不把业务语义写死。
推广意义
这是 CV 竞赛最小闭环模板:数据读取、训练、验证、提交。它是后续复杂视觉题的基础。