• Swin Transformer安装记录(国内源,飞快)


    0. 设备环境

    ubuntu--20.10

    GPU--3080

    cuda--11.0

    torch--1.7.0

    mmcv--1.3.8

    mmdetection--2.11.0

    所有的git的项目,都可以用 GitHub Proxy 代理加速 (ghproxy.com) 转链,尤其是swin transformer的权重文件,又大下载的又慢,转完链后就飞快了。

    1. 创建环境

    conda create -n swin python=3.7
    conda activate swin
    

    2. 安装pytorch(利用国内源)

    open-mmlab/mmcv: OpenMMLab Computer Vision Foundation (github.com)

    在上边的网址中看好要装那个pytorch版本,例如我是cuda11.0,就只支持pytorch1.7,所以我就去安装pytorch1.7。只需要去下边网址找到对应的把下边-c前边给替换掉就行了。

    pytorch所有版本安装网址:Previous PyTorch Versions | PyTorch

    conda install pytorch==1.10.0 torchvision torchaudio cudatoolkit=11.3 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/linux-64/
    

    校验是否安装成功:

    import torch
    print(torch.cuda.is_available())
    #cuda是否可用;
    print(torch.__version__)
    # 返回 torch 版本
    print(torch.backends.cudnn.version())
    # 返回 cudnn 版本
    print(torch.version.cuda)
    # 返回 cuda 版本
    print(torch.cuda.device_count())
    # 返回 gpu 数量;
    print(torch.cuda.get_device_name(0))
    # 返回 gpu 名字,设备索引默认从0开始;
    print(torch.cuda.current_device())
    # 返回当前设备索引
    print(torch.rand(3,3).cuda())
    
    device1 = torch.device("cuda:1")
    data = torch.randn(1, 3, 224, 224)
    data = data.to(device1)
    model = models.vgg16()
    model=model.to(device1)
    res = model(data)
    print(res)
    

    3. 安装其他依赖包

    用源非常快

    pip install cython matplotlib opencv-python termcolor==1.1.0 yacs==0.1.8 -i  https://pypi.mirrors.ustc.edu.cn/simple
    

    4. 安装mmcv和Swin-Transformer-Object-Detection

    mmcv要安装指定版本,不要装最新版!!!【2022/4/13记载】

    # 安装mmcv
    pip install mmcv-full==1.3.17 -f https://download.openmmlab.com/mmcv/dist/cu113/torch1.10.0/index.html
    
    # 安装SwinTransformer
    git clone https://github.com/SwinTransformer/Swin-Transformer-Object-Detection.git
    pip install -r requirements/build.txt
    python setup.py develop
    

    5. 安装apex

    下载地址:https://github.com/NVIDIA/apex

    git clone https://github.com/NVIDIA/apex.git
    cd apex
    # pip install -v --disable-pip-version-check --no-cache-dir --global-option="--cpp_ext" --global-option="--cuda_ext" ./			# 我用这个安装报错,不过网上大部分是这个
    python setup.py develop		# 用这个安装就可以
    

    提醒Successfully installed apex-0.1就是安装成功了。

    检验是否安装成功:导入不报错就成功

    from apex import amp
    

    6. 下载权重:

    将要下载的权重链接复制到 GitHub Proxy 代理加速 (ghproxy.com) 中,利用新网址加速下载。

    权重下载网址:https://github.com/SwinTransformer/Swin-Transformer-Object-Detection

    所用demo权重:https://github.com/SwinTransformer/storage/releases/download/v1.0.2/mask_rcnn_swin_tiny_patch4_window7.pth

    在Swin-Transformer-Object-Detection/目录下新建一个checkpoints,将权重文件下载到里边。

    mkdir checkpoints
    cd checkpoints
    wget https://github.com/SwinTransformer/storage/releases/download/v1.0.2/mask_rcnn_swin_tiny_patch4_window7.pth
    

    7. 运行demo

    回到Swin-Transformer-Object-Detection/目录下

    python demo/image_demo.py demo/demo.jpg configs/swin/cascade_mask_rcnn_swin_base_patch4_window7_mstrain_480-800_giou_4conv1f_adamw_3x_coco.py checkpoints/cascade_mask_rcnn_swin_base_patch4_window7.pth
    

    8. 训练swin

    单gpu训练

    python tools/train.py configs/swin/mask_rcnn_swin_tiny_patch4_window7_mstrain_480-800_adamw_3x_coco.py  --cfg-options model.pretrained=mask_rcnn_swin_tiny_patch4_window7.pth
    

    多gpu训练

    ./tools/dist_train.sh configs/LogDet/swinb_3x_bigsize_anchor_bs2x8.py 8 
    
    ./tools/dist_test.sh configs/LogDet/swinb_3x_bigsize_anchor_bs2x8.py work_dirs/LogDet/swinb_3x_bigsize_anchor_bs2x8/latest.pth 8 --format-only --options "jsonfile_prefix=work_dirs/LogDet/swinb_3x_bigsize_anchor_bs2x8"
    

    9.可视化检测结果

    可视化在测试集上生成的结果

    python tools/test.py work_dirs/tood/train2/config.py work_dirs/tood/train2/best_bbox_mAP_epoch_13.pth --show-dir work_dirs/tood/train2/visiual/
    

    测试集可视化每一类实例的mAP,得有真实标签才可以。

    ./tools/dist_test.sh work_dirs/swin_small_3x/train9/config.py work_dirs/swin_small_3x/train9/epoch_36.pth 4 --eval bbox --options "classwise=True"
    

    10.生成json文件:

    生成bbox和segm的json无结果,然后测试bbox mAP

    python tools/test.py work_dirs/config.py work_dirs/best.pth --format-only --eval bbox --options "jsonfile_prefix=work_dirs/eva"
    

    4GPU测试

     ./tools/dist_test.sh work_dirs/config.py work_dirs/best.pth 4 --format-only --options "jsonfile_prefix=workdir/eva"
    

    11.绘制指标曲线

    python tools/analysis_tools/analyze_logs.py plot_curve work_dirs/swin_tiny_3x/train1/20220418_182809.logplot.json --keys bbox_mAP segm_mAP
    

    12. 杀死僵尸程序

    查看端口:然后杀死kill -9 pid号

    netstat -nltp
    

    1

    第二种方法:

    sudo fuser -v /dev/nvidia* 
    

    查看每个显卡运行的程序后,

    2

    kill -9 COMMAND是python的程序,图中这两个别kill

  • 相关阅读:
    _MainTex_TexelSize
    资源处理参考
    unity 判断一个trans在不在sceen内
    DX11 绘制三角形 判断顺时针
    int型转LPCWSTR在MessageBox上显示
    sizeof struct
    buffer和cache
    DX11 三维空间: depth信息与stencil信息
    DX11 纹理的添加
    hlsl SV_POSITION
  • 原文地址:https://www.cnblogs.com/gy77/p/16221385.html
Copyright © 2020-2023  润新知