SegFormer学习笔记(1)安装

一、源码:

https://github.com/sithu31296/semantic-segmentation

我并没使用SegFormer的官方源码,那个mmcv特磨人了,各种奇葩配置错误。

二、环境配置

  1. 新建conda环境

conda create -n segformer3715 python=3.7.15

选用python3.7.15(纯粹的3.7.0版本,竟然搞出了cannot import name 'OrderedDict' from 'typing错误,不太好改)

  1. 安装pytorch

用的轮子离线安装

pip install torch-1.13.0+cu117-cp37-cp37m-win_amd64.whl

pip install torchvision-0.14.0+cu117-cp37-cp37m-win_amd64.whl

三、infer试一下

1、目标

python tools/infer.py --cfg configs/ade20k.yaml

2、下载文件

按照ade20k.yaml,下载相应文件。

SegFormer学习笔记(1)安装_第1张图片

这些文件的链接,都在README.md文件中

SegFormer学习笔记(1)安装_第2张图片

3、重要提示:pycharm的终端,一定要选择 command prompt

SegFormer学习笔记(1)安装_第3张图片

pycharm的终端,一定要选择 command prompt,否则输入指令没反应。

四、train试一下(最后失败了)

各种问题来了:

需要像我一样改一下ade20k.yaml

SegFormer学习笔记(1)安装_第4张图片

同时,我担心我还是用错了cuda,我在train文件中,改了这行代码如下:

SegFormer学习笔记(1)安装_第5张图片

五、大半夜的,重新train

我用的是custom.yaml

而且里面的配置如下:

DEVICE          : cuda              # device used for training and evaluation (cpu, cuda, cuda0, cuda1, ...)
SAVE_DIR        : 'output'         # output folder name used for saving the model, logs and inference results

MODEL:                                    
  NAME          : SegFormer                                           # name of the model you are using
  BACKBONE      : MiT-B2                                                 # model variant
  PRETRAINED    : 'checkpoints/backbones/mit/mit_b2.pth'              # backbone model's weight

DATASET:
  NAME          : HELEN                                          # dataset name to be trained with (camvid, cityscapes, ade20k)
  ROOT          : 'data/SmithCVPR2013_dataset_resized'                                      # dataset root path
  IGNORE_LABEL  : 255

TRAIN:
  IMAGE_SIZE    : [512, 512]    # training image size in (h, w)
  BATCH_SIZE    : 2               # batch size used to train
  EPOCHS        : 6             # number of epochs to train
  EVAL_INTERVAL : 2             # evaluation interval during training
  AMP           : false           # use AMP in training
  DDP           : false           # use DDP training

LOSS:
  NAME          : OhemCrossEntropy          # loss function name (ohemce, ce, dice)
  CLS_WEIGHTS   : false            # use class weights in loss calculation

OPTIMIZER:
  NAME          : adamw           # optimizer name
  LR            : 0.001           # initial learning rate used in optimizer
  WEIGHT_DECAY  : 0.01            # decay rate used in optimizer 

SCHEDULER:
  NAME          : warmuppolylr    # scheduler name
  POWER         : 0.9             # scheduler power
  WARMUP        : 10              # warmup epochs used in scheduler
  WARMUP_RATIO  : 0.1             # warmup ratio
  

EVAL:
  MODEL_PATH    : 'checkpoints/pretrained/ddrnet/ddrnet_23slim_city.pth'     # trained model file path
  IMAGE_SIZE    : [1024, 1024]                            # evaluation image size in (h, w)                       
  MSF: 
    ENABLE      : false                                   # multi-scale and flip evaluation  
    FLIP        : true                                    # use flip in evaluation  
    SCALES      : [0.5, 0.75, 1.0, 1.25, 1.5, 1.75]       # scales used in MSF evaluation                


TEST:
  MODEL_PATH    : 'checkpoints/pretrained/ddrnet/ddrnet_23slim_city.pth'    # trained model file path
  FILE          : 'assests/cityscapes'                    # filename or foldername 
  IMAGE_SIZE    : [1024, 1024]                            # inference image size in (h, w)
  OVERLAY       : true                                    # save the overlay result (image_alpha+label_alpha)
SegFormer学习笔记(1)安装_第6张图片

你可能感兴趣的:(人工智能之SegFormer,学习)