windows下跑通transformer 实现图像分割,3060基于cuda11.3+torch1.10+torchvision1.11

首先环境部署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 ArgumentParser

from mmseg.apis import inference_segmentor, init_segmentor, show_result_pyplot
from mmseg.core.evaluation import get_palette


def 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 改为ade20k
    parser.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 file
    model = init_segmentor(args.config, args.checkpoint, device=args.device)
    # test a single image
    result = inference_segmentor(model, args.img)
    # show the results
    show_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 直接注释

再次运行

  • 27
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值