Tan_pytorch_segmentation/pytorch_segmentation/PV_LRASPP
L_J 63abdae2a9 “提交项目” 2025-05-19 20:48:24 +08:00
..
src “提交项目” 2025-05-19 20:48:24 +08:00
train_utils “提交项目” 2025-05-19 20:48:24 +08:00
README.md “提交项目” 2025-05-19 20:48:24 +08:00
get_palette.py “提交项目” 2025-05-19 20:48:24 +08:00
lraspp.png “提交项目” 2025-05-19 20:48:24 +08:00
my_dataset.py “提交项目” 2025-05-19 20:48:24 +08:00
palette.json “提交项目” 2025-05-19 20:48:24 +08:00
pascal_voc_classes.json “提交项目” 2025-05-19 20:48:24 +08:00
predict.py “提交项目” 2025-05-19 20:48:24 +08:00
requirements.txt “提交项目” 2025-05-19 20:48:24 +08:00
results20211028-105233.txt “提交项目” 2025-05-19 20:48:24 +08:00
train.py “提交项目” 2025-05-19 20:48:24 +08:00
train_multi_GPU.py “提交项目” 2025-05-19 20:48:24 +08:00
transforms.py “提交项目” 2025-05-19 20:48:24 +08:00
validation.py “提交项目” 2025-05-19 20:48:24 +08:00

README.md

LRASPP(Searching for MobileNetV3)

该项目主要是来自pytorch官方torchvision模块中的源码

环境配置:

  • Python3.6/3.7/3.8
  • Pytorch1.10
  • Ubuntu或Centos(Windows暂不支持多GPU训练)
  • 最好使用GPU训练
  • 详细环境配置见requirements.txt

文件结构:

  ├── src: 模型的backbone以及LRASPP的搭建
  ├── train_utils: 训练、验证以及多GPU训练相关模块
  ├── my_dataset.py: 自定义dataset用于读取VOC数据集
  ├── train.py: 单GPU训练脚本
  ├── train_multi_GPU.py: 针对使用多GPU的用户使用
  ├── predict.py: 简易的预测脚本,使用训练好的权重进行预测测试
  ├── validation.py: 利用训练好的权重验证/测试数据的mIoU等指标并生成record_mAP.txt文件
  └── pascal_voc_classes.json: pascal_voc标签文件

预训练权重下载地址:

  • 注意官方提供的预训练权重是在COCO上预训练得到的训练时只针对和PASCAL VOC相同的类别进行了训练所以类别数是21(包括背景)
  • lraspp_mobilenet_v3_large: https://download.pytorch.org/models/lraspp_mobilenet_v3_large-d234d4ea.pth
  • 注意下载的预训练权重记得要重命名比如在train.py中读取的是lraspp_mobilenet_v3_large.pth文件, 不是lraspp_mobilenet_v3_large-d234d4ea.pth

数据集本例程使用的是PASCAL VOC2012数据集

训练方法

  • 确保提前准备好数据集
  • 确保提前下载好对应预训练模型权重
  • 若要使用单GPU或者CPU训练直接使用train.py训练脚本
  • 若要使用多GPU训练使用torchrun --nproc_per_node=8 train_multi_GPU.py指令,nproc_per_node参数为使用GPU数量
  • 如果想指定使用哪些GPU设备可在指令前加上CUDA_VISIBLE_DEVICES=0,3(例如我只要使用设备中的第1块和第4块GPU设备)
  • CUDA_VISIBLE_DEVICES=0,3 torchrun --nproc_per_node=2 train_multi_GPU.py

注意事项

  • 在使用训练脚本时,注意要将'--data-path'(VOC_root)设置为自己存放'VOCdevkit'文件夹所在的根目录
  • 在使用预测脚本时,要将'weights_path'设置为你自己生成的权重路径。
  • 使用validation文件时注意确保你的验证集或者测试集中必须包含每个类别的目标并且使用时只需要修改'--num-classes'、'--data-path'和'--weights'即可,其他代码尽量不要改动

如果对LRASPP原理不是很理解可参考我的bilibili

LR-ASPP网络讲解: https://www.bilibili.com/video/BV1LS4y1M76E

进一步了解该项目以及对LRASPP代码的分析可参考我的bilibili

LR-ASPP源码解析(Pytorch版): https://www.bilibili.com/video/bv13D4y1F7ML

Pytorch官方实现的LRASPP网络框架图

lraspp