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. Visual Studio部署C++环境下OpenCV库

      本文介绍在Visual Studio 2022中配置.编译C++计算机视觉库OpenCV的方法. 1 OpenCV库配置   首先,我们进行OpenCV库的下载与安装.作为一个开源的库,我们直接在 ...

  2. 从零开始搭建Springboot开发环境(Java8+Git+Maven+MySQL+Idea)之一步到位

    说明 所谓万事开头难,对于初学Java和Springboot框架的小伙伴往往会花不少时间在开发环境搭建上面.究其原因其实还是不熟悉,作为在IT界摸爬滚打数年的老司机,对于各种开发环境搭建已经了然于胸, ...

  3. 【5分钟】W10 64bit系统本地安装postgresql 11

    1.下载 官网下载地址 2.安装 一路默认,有一个选语言的可以选中chinese simple(中文简体). 3.初始化 1)进入bin:   cd C:\Program Files\PostgreS ...

  4. Elasticsearch(es) 查询语句语法详解

    Elasticsearch 查询语句采用基于 RESTful 风格的接口封装成 JSON 格式的对象,称之为 Query DSL.Elasticsearch 查询分类大致分为全文查询.词项查询.复合查 ...

  5. AOSP12内置三方apk

    一.准备工作 1.可正常编译的Android12的源码 2.三方apk:我这里选择的是一个ChatGPT的apk(下载地址:https://aigcfun.com/app-download),选择这个 ...

  6. 毕设系列之JrtpLib H264(裸视频数据) 实时视频传输(发送与接受)

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明   本文作为本人csdn blog的主站的备份.(Bl ...

  7. 【LeetCode刷题】239.滑动窗口最大值

    239.滑动窗口最大值(点击跳转LeetCode) 给你一个整数数组nums,有一个大小为k的滑动窗口从数组的最左侧移动到数组的最右侧.你只可以看到在滑动窗口内的k个数字.滑动窗口每次只向右移动一位. ...

  8. 记录--uniapp中生成二维码并展示

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 uniapp生成二维码并展示 1.下载weapp-qrcode.js文件并放在utils文件中链接: https://pan.baidu. ...

  9. rabbitmq学习记录

    一.RabbitMQ的概念 RabbitMQ 是一个消息中间件:它接受并转发消息.你可以把它当做一个快递站点,当你要发送一个包裹时,你把你的包裹放到快递站,快递员最终会把你的快递送到收件人那里,按照这 ...

  10. FPT:又是借鉴Transformer,这次多方向融合特征金字塔 | ECCV 2020

    论文提出用于特征金字塔的高效特征交互方法FPT,包含3种精心设计的特征增强操作,分别用于借鉴层内特征进行增强.借鉴高层特征进行增强以及借鉴低层特征进行增强,FPT的输出维度与输入一致,能够自由嵌入到各 ...