首先环境部署cuda11.3 和torch1.10 vs2019(默认安装即可)这些不再赘述。
接下来比较重要的是:一些依赖的环境
本人的依赖环境如下:
很多博客上讲安装mmcv1.3.3 本人亲测 会报错
MMCV==1.3.13 is used but incompatible. Please install mmcv>=[1, 1, 4], <=[1,3, 0】
所以直接pip install mmcv-full==1.3.0即可 前提是安装好vs2019有c++环境 会自己编译好
直接pip mmcv-full==1.3.0 报错的小伙伴 先pip install pytest-runner
不要在意anaconda的环境名字。
安装pycocotools
附上百度,下载好后直接pip install xxxx.tar:
链接:https://pan.baidu.com/s/1H9PJR21y6o-nwMEv-xx5aw
提取码:coco
从github下载Swin Transformer的源码(https://github.com/SwinTransformer/Swin-Transformer-Semantic-Segmentation)
下载完成后 pip install -r requirements.txt 不管有没有新安装包,每下都去pip 一下以防万一
下载预训练模型 三个模型都在里面
链接:https://pan.baidu.com/s/14NHo8RjPALf7-iHqixIa_A
提取码:swin
修改下参数 已经备注好要修改的地方
from argparse import ArgumentParserfrom mmseg.apis import inference_segmentor, init_segmentor, show_result_pyplot
from mmseg.core.evaluation import get_palettedef main():parser = ArgumentParser()#修改1:图像路径parser.add_argument('--img', default='demo.png', help='Image file')#修改2 初始化模型py文件parser.add_argument('--config', default='../configs/swin/upernet_swin_base_patch4_window7_512x512_160k_ade20k.py', help='Config file')#修改3 模型pth文件parser.add_argument('--checkpoint', default='../upernet_swin_base_patch4_window7_512x512.pth', help='Checkpoint file')parser.add_argument('--device', default='cuda:0', help='Device used for inference')#修改4 default 改为ade20kparser.add_argument('--palette',default='ade20k',help='Color palette used for segmentation map')args = parser.parse_args()# build the model from a config file and a checkpoint filemodel = init_segmentor(args.config, args.checkpoint, device=args.device)# test a single imageresult = inference_segmentor(model, args.img)# show the resultsshow_result_pyplot(model, args.img, result, get_palette(args.palette))if __name__ == '__main__':main()
直接run demo下的image_demo.py
会报错 _specify_ddp_gpu_num
EncoderDecoder: UPerHead: 'super' object has no attribute '_specify_ddp_gpu_num'
是因为1.10版本的torch 没有_specify_ddp_gpu_num方法 被修改了
查阅[Fix] Fix SyncBN build in PyTorch 1.9 by xvjiarui · Pull Request #1138 · open-mmlab/mmcv · GitHub
因此找到parrots_wrapper.py文件:
anaconda3\envs\torch1.8\Lib\site-packages\mmcv\utils\parrots_wrapper.py第85-87行直接注释
anaconda3\envs\torch1.8\Lib\site-packages\mmcv\cnn\bricks\norm.py 第109-110 直接注释
再次运行