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

第二种方法:

sudo fuser -v /dev/nvidia*

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

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

Swin Transformer安装记录(国内源,飞快)的更多相关文章

  1. centos7 安装zabbix3.0 安装zabbix4.0 yum安装zabbix 国内源安装zabbix 阿里云服务器安装zabbix

    首先,此篇文章是有原因的. 刚开始也和大家一样来学习安装zabbix 奈何网上的教程和现实出现不一样的情况 在安装zabbix过程中,因为zabbix下载源是在国外,下载途中会出现终止下载的情况 tr ...

  2. pip安装使用国内源的两种方法

    pip安装后使用pip安装第三方库默认是国外源,一般安装慢连接不稳定,等得花儿都谢了,结果还告诉你安装失败..../(ㄒoㄒ)/~~ 这时我们就要想想其它办法啦,毕竟不能强求 国外不行,就只有国内了赛 ...

  3. docker学习------记录centos7.5下docker安装更换国内源的处理过程

    一.centos7.5下更换阿里源 1.装好centos7.5镜像,将yum源更换为阿里源 第一步:刚出的centos7.5是解析不到阿里的东西的,所以找了台centos7.4,下载一些包 (1) 下 ...

  4. ROS安装(国内源)

    1.添加源 1.1 USTC源 sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ ...

  5. jenkins 2.204.2 安装, 使用国内源安装, 并且跳过插件界面, 更新成国内插件源.

    需要java环境支持,自行百度. jenkins 安装源在国外, 下载会比较慢, 尤其在linux下, 使用yum或者apt install jenkins方式安装时,经常会下载失败. 由于yum或者 ...

  6. pip安装更换国内源

    镜像地址:阿里云 https://mirrors.aliyun.com/pypi/simple/豆瓣http://pypi.douban.com/simple/清华大学 https://pypi.tu ...

  7. ruby 编译安装,gem国内源ruby.taobao.org

    centos6.6final 一.安装依赖包(使用默认CENTOS更新源): # yum install openssl* openssl-devel zlib-devel gcc gcc-c++ m ...

  8. debian9使用国内源安装docker以及一些使用方法

    debian9使用国内源安装docker以及一些使用方法   首先, 我的环境是debian, 容器是centos debian 扔源 # deb-src [arch=amd64] https://m ...

  9. yum更换国内源 yum下载rpm包 源码包安装

    7.6 yum更换国内源 7.7 yum下载rpm包 7.8/7.9 源码包安装 yum更换国内源 cd  /etc/yum.repo.d/ 删除源 rm -f   dvd.repo rm -f  C ...

  10. python 使用国内源安装软件

    python linux 等 使用国内源安装软件 速度更快 你值得拥有 ! 豆瓣源:pip install -i https://pypi.douban.com/simple/ 阿里源:pip ins ...

随机推荐

  1. VMware workstation虚拟机联网的方法

    注意:我的虚拟机所安装的系统是Centos 方法一: 第一步:先设置VMware的编辑--虚拟网络编辑器,启用VMnet8,NAT模式,如下图所示. 其实就是VMware默认的设置,无须更改,如果不小 ...

  2. 【思维题、KMP】P3526 [POI2011]OKR-Periodicity 题解

    P3526 [POI2011]OKR-Periodicity 题解 前言 一道非常厉害的思维题.看题解得到了一些提示搞出来了. 作为 2011 年的题还是很厉害的. 约定 定义 \(s[l,r]\) ...

  3. snippet n. 小片, 片断, 摘录 单词记忆

    snippet 助记:snip[剪断] + -et小词后缀. 关键是 snip 怎么记忆 snip : 拟声词,模仿剪断东西的声音. 助记单词 slip 滑 根据字母 n是done的缩写,可以 想成 ...

  4. Nginx 打不开 80端口占用 netstat -aon|findstr "80" 看有没有80占用 有的话 net stop http

    Nginx 打不开 80端口占用 netstat -aon|findstr "80" 看有没有80占用 有的话 net stop http

  5. maven问题之Could not calculate build plan:

    问题描述: Could not calculate build plan: Failure to transfer org.apache.maven.plugins:maven-surefire-pl ...

  6. 告别繁琐!1分钟带你构建RabbitMQ消息应用

    支持.Net/.Net Core/.Net Framework,可以部署在Docker, Windows, Linux, Mac. RabbitMQ作为一款主流的消息队列工具早已广受欢迎.相比于其它的 ...

  7. 初识uds之abstract socket

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 环境说明   无 前言   在<记一次有趣的hwclock ...

  8. 让高清和流畅并存,3DCAT云看车技术领跑汽车行业

    3DCAT实时云渲染平台在承接了奥迪大客户的项目后,将把一部分业务重心放到汽车行业,加大了研发力度和算力投入,细节决定成败,3DCAT的云看车高度还原了汽车每一种材质和纹理,逼真的视觉享受,让车主爱不 ...

  9. 总体最小二乘法(Total Least Squares)拟合直线

    前言 最小二乘法是最小化每个点到直线的垂直误差,由于误差采用的是垂直误差,导致越接近垂直线(平行于\(y\)轴),拟合效果越差,无法拟合垂直线. 通过最小化每个点到直线的距离误差可以解决最小二乘法无法 ...

  10. tableau日常使用小技巧

    一.设置数值自定义格式为万 0"."0,"万" #"."#, 万 二.