Swin-Transformer分割源码(已跑通)

标签:swin-transformer
作者:炼己者


本博客所有内容以学习、研究和分享为主,如需转载,请联系本人,标明作者和出处,并且是非商业用途,谢谢!


1、Swin-Transformer分类源码(已跑通)
2、关于swin transformer原理的一些补充理解
3、Swin-Unet(分割改编)

一. 概要

  • 之前Swin-transformer关于分类的源码跑通了,感兴趣的点击上面的链接即可。然后现在又跑通了分割的源码。在这里给大家分享一下。这个坑明显比分类的多。

二. 正文

1、官方swin-transformer源码
戳右边:Swin-Transformer分割源码

这里给个中文版的操作步骤

配置环境

  • 1 戳右边:get_started.md
    进去之后,按照他说的去操作即可。只需要注意一个点,安装mmcv,这个很重要,没安装好后面跑代码就会各种报错。
    安装mmcv我是参照的这篇 https://github.com/open-mmlab/mmcv 。
    介绍下我用的命令
pip install mmcv-full==1.2.4 -f https://download.openmmlab.com/mmcv/dist/cu101/torch1.6.0/index.html

两个注意的点,看上面的链接。
A:"cu101",这个指的是cuda的版本,我这边是10.1,所以写101

# 查找cuda的版本方法
cat /usr/local/cuda/version.txt

B:"torch1.6.0",这个很明显,torch的版本

# 查找torch的版本
# 进入到python环境
import torch
print(torch.__version__)

mmcv安装链接改这两个地方就可以了!!!
其他如果安装环境过程提醒你缺少什么什么安装包,直接pip install 招呼即可
比如这个:

# 报这个错误
ImportError: No module named terminaltables
# 那就转手
pip install terminaltables

数据集

环境搞定之后,就是数据集,数据集我下面会分享网盘(5毛9买到,csdn下载还得要币,来,我这儿直接开放出来),官方用的数据集是ADEChallengeData2016这个。大家也可以用自己的数据集,操作操作!

代码

  • 把这份代码clone到你的服务器上,或者本地

git clone https://github.com/SwinTransformer/Swin-Transformer-Semantic-Segmentation.git

  • 创建运行环境,并进入环境

conda activate open-mmlab

运行代码

有了数据,有了代码,那就运行了

首先是训练的运行方式:

CUDA_VISIBLE_DEVICES=4,5 tools/dist_train.sh configs/swin/upernet_swin_tiny_patch4_window7_512x512_160k_ade20k.py 2 --options model.pretrained="./pth/swin_tiny_patch4_window7_224.pth"

官方给的操作是8张卡,这边两张卡就可以跑了。注意用两张卡,后面是2,8张卡就是8了。就是 --options前面的那个数字!!!不改的话,你直接会报内存溢出错误。
model.pretrained 用的模型并没有和它那个相匹配,不过没影响跑。

然后是测试的运行方式:
我的是训练过程没跑完,给他断掉了,看结果输出文件也没有输出啥模型什么的,这个待定吧。

好了!!!这样操作下来大概率是可以跑通的

数据集以及相关资料分享

ADE2016就是咱们分割要用的数据集

链接:https://pan.baidu.com/s/1OOKj0Ws2BBR29nRMUXFVBQ
提取码:o33w
复制这段内容后打开百度网盘手机App,操作更方便哦--来自百度网盘超级会员V4的分享

3、小结

如果跑的还是有问题,大家可以下面留言,我们交流。接下来我也打算分享自己关于swin-transformer的理解体会,尽可能把过程中收集的资料,文献都分享在这里,大家共同进步。

希望可以帮助到大家,如果你觉得这篇文章对你有一定的帮助,那就点个赞支持一下吧!如果有什么问题的话也可以在文章下面评论,我们一起交流解决问题!


以下是我所有文章的目录,大家如果感兴趣,也可以前往查看
戳右边:打开它,也许会看到很多对你有帮助的文章

你可能感兴趣的:(Swin-Transformer分割源码(已跑通))