| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
AI Challenger 2018 农作物病害检测 竞赛 baseline,基于 PyTorch 的图像分类方案。
声明:开源仅供交流学习,数据请勿用于商业用途。转载或解读请注明出处,谢谢!
成绩:线上 0.8805,线下 0.875(因划分存在随机性,复现可能有波动,已尽量固定随机种子)。
代码已从原始的 python3.6 / pytorch0.4.1 迁移到 PyTorch 2.x,并支持 CPU / GPU 自动切换与混合精度 (AMP)。
pip install -r requirements.txt主要依赖:
| 包 | 版本要求 |
|---|---|
| python | >= 3.8 |
| torch | >= 2.0 |
| torchvision | >= 0.15 |
| scikit-learn | 用于分层划分 |
| pandas / numpy | 数据处理 |
| pillow / opencv-python / scikit-image | 图像与离线增强 |
| tqdm | 进度条 |
运行设备在 config.py 中自动探测:有 GPU 时用 CUDA + AMP,无 GPU 时回退到 CPU。
下载数据集(10 月 23 日更新后的新版,含训练/验证/测试 A、B): 百度网盘,提取码:iksk
将测试集图片复制到 data/test/ 下。
将训练集 + 验证集的图片都复制到 data/temp/images/,两个 json 标注文件放到 data/temp/labels/。
执行 move.py 按类别整理图片到 data/train/<类别>/:
python move.py该脚本会删除样本异常的第 44、45 类,并把之后的类别编号整体前移 2 位(num_classes 因此为 59)。main.py 的 test() 会做逆映射,把预测结果还原回官方原始编号。
# 训练 + 在测试集上推理,生成提交文件
python main.py关键超参数(在 config.py 中调整):
| 参数 | 默认值 | 说明 |
|---|---|---|
| epochs | 40 | 训练轮数 |
| batch_size | 8 | 650×650 大图较吃显存,按需调整 |
| img_height/img_width | 650 | 输入尺寸 |
| lr | 1e-4 | Adam 学习率 |
| use_amp | True | 混合精度(仅 CUDA 生效) |
| use_focal_loss | False | 置 True 改用(已修复的)FocalLoss |
. ├── config.py # 全部超参数、设备与开关 ├── move.py # 按标注把图片整理进类别目录 ├── data_aug.py # 离线数据增强(可选) ├── dataset/dataloader.py # Dataset / DataLoader / transforms ├── models/model.py # ResNet50 分类网络 ├── utils.py # AverageMeter / accuracy / Logger / FocalLoss 等 └── main.py # 训练、评估、测试主流程
在原 2018 版基础上做了如下修复与升级:
Bug 修复
PyTorch 2.x 迁移
新增能力
| Back | FazBrowse Home | New Git URL |