这是跑通的分割源码介绍,大家有需要可以参考一下
1、Swin-Transformer分割源码(已跑通)
2、关于swin transformer原理的一些补充理解
3、Swin-Unet(分割改编)
一. 概要
- 最近swin-transformer大火,代码开源两天,girhub直接飙到1.9k。估计接下来关于和swin-transformer相结合的各种网络结构paper就要出来了,哈哈,我也是其中的一员,拼手速吧各位。它的原理网上的博客已经讲的非常的细致了,甚至还有带着读源代码的。这些大佬真的很强,下面会放一些本人读过的非常有助于理解的博客。我在这里主要分享的是官方源码如何跑通,跑通它的代码还是非常不容易的,有很多的小坑。对于我们小白而言,跑通代码才能给我们继续了解原理的信心,然后也可以大胆的debug,去验证里面的代码是否与论文所述的一致。
二. 正文
1. 相关博客分享
A、与代码相关的讲解
B、与论文原理相关的讲解
2、官方swin-transformer源码
这里给个中文版的步骤吧
配置环境
- 把这份代码clone到你的服务器上,或者本地
- 创建运行环境,并进入环境
- 安装需要的环境
conda install pytorch==1.7.1 torchvision==0.8.2 cudatoolkit=10.1 -c pytorch
这里注意一下自己的环境,我这边的cuda是10.1的,所以可以直接按着官方给的这个来。怎么看自己的cuda环境呢,有很多种方法,最靠谱的是这个:
cat /usr/local/cuda/version.txt
别看nvidia-smi的那个,那个不准。
- 安装 timm==0.3.2:
pip install timm==0.3.2
继续安装其他环境
pip install opencv-python==4.4.0.46 termcolor==1.1.0 yacs==0.1.8
环境配置完毕!!!
数据集
官方这边匹配代码的数据集是imagenet,但是imagenet太大了,咱只是想跑通一下,然后看看里面的源码咋回事儿,感觉感觉,犯不着去下载这么大的数据。真羡慕你们能看到这篇博客,来来来,我这儿提供了小型版的imagenet的数据集,统一放到下面了,百度网盘自取。
运行代码
有了数据,有了代码,那就运行了
首先是训练的运行方式:
python -m torch.distributed.launch --nproc_per_node 4 --master_port 12345 main.py --cfg configs/swin_tiny_patch4_window7_224.yaml --data-path imagenet --batch-size 64
--data-path对应的就是数据文件所在的位置
然后是测试的运行方式:
python -m torch.distributed.launch --nproc_per_node 1 --master_port 12345 main.py --eval --cfg configs/swin_tiny_patch4_window7_224.yaml --resume /pth/swin_tiny_patch4_window7_224.pth --data-path imagenet
补充一个你可能遇到的bug,CalledProcessError & RuntimeError。遇到这个bug的原因就是上面的命令里面写的有问题,比如路径写错了或者压根儿路径对应的文件就不存在,那么就会报这样的错误,大家注意!!!
swin-transformer文件目录
这就是从官方源码那边clone下来的,区别在于我这里加了个pth文件,就是模型文件,我提供的百度网盘文件里面有,还有imagenet文件夹,这里面放着数据。
所传百度网盘的界面
这是从网盘下载下来的东西,apex就别放在swin-transformer文件里面了,跟它并行就好。然后数据文件解压缩之后,记得改名为imagenet。
好了!!!这样操作下来大概率是可以跑通的
今天的文章 Swin-Transformer分类源码(已跑通)分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/104452.html