Skip to content

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 竞赛最小闭环模板:数据读取、训练、验证、提交。它是后续复杂视觉题的基础。