Swin-Transformer 图像分割实战:使用Swin-Transformer-Semantic-Segmentation训练ADE20K数据集(语义分割)
书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。如果不要按照我配置的路径配置,可以在这里修改路径。光
先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Python全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。





既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Python知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip1024c (备注Python)
正文
1、创建虚拟环境
conda create -n open-mmlab python=3.7
conda activate open-mmlab
2、安装pytorch
根据电脑的cuda版本选择pytorch,我试了1.6.0版本的可以。其他的版本在安装mmcv的时候有可能会出现问题。
3、安装mmcv-full
pip install -U torch1.6.0+cu101 torchvision0.7.0+cu102 -f https://download.pytorch.org/whl/torch_stable.html
4、下载并安装Swin-Transformer-Semantic-Segmentation
git clone https://github.com/SwinTransformer/Swin-Transformer-Semantic-Segmentation
cd Swin-Transformer-Semantic-Segmentation
pip install -e . #或者 pyhton setup.py develop。注意-e后面还有个. 不要丢掉。

1、下载预训练模型
ADE20K
| Backbone | Method | Crop Size | Lr Schd | mIoU | mIoU (ms+flip) | #params | FLOPs | config | log | model |
| — | — | — | — | — | — | — | — | — | — | — |
| Swin-T | UPerNet | 512x512 | 160K | 44.51 | 45.81 | 60M | 945G | [config](file:/D:/cv/Swin-Transformer-Semantic-Segmentation-main/configs/swin/upernet_swin_tiny_patch4_window7_512x512_160k_ade20k.py) | github/baidu | github/baidu |
| Swin-S | UperNet | 512x512 | 160K | 47.64 | 49.47 | 81M | 1038G | [config](file:/D:/cv/Swin-Transformer-Semantic-Segmentation-main/configs/swin/upernet_swin_small_patch4_window7_512x512_160k_ade20k.py) | github/baidu | github/baidu |
| Swin-B | UperNet | 512x512 | 160K | 48.13 | 49.72 | 121M | 1188G | [config](file:/D:/cv/Swin-Transformer-Semantic-Segmentation-main/configs/swin/upernet_swin_base_patch4_window7_512x512_160k_ade20k.py) | github/baidu | github/baidu |
百度网盘的提取码是:swin
下载完后复制到项目的根目录。
2、修改./demo/image_demo.py
修改配置参数img、config、checkpoint、palette。
from argparse import ArgumentParser
from mmseg.apis import inference_segmentor, init_segmentor, show_result_pyplot
from mmseg.core.evaluation import get_palette
def main():
parser = ArgumentParser()
parser.add_argument(‘–img’, default=‘demo.png’, help=‘Image file’)
parser.add_argument(‘–config’, default=‘…/configs/swin/upernet_swin_tiny_patch4_window7_512x512_160k_ade20k.py’, help=‘Config file’)
parser.add_argument(‘–checkpoint’, default=‘…/upernet_swin_tiny_patch4_window7_512x512.pth’, help=‘Checkpoint file’)
parser.add_argument(
‘–device’, default=‘cuda:0’, help=‘Device used for inference’)
parser.add_argument(
‘–palette’,
default=‘ade20k’,
help=‘Color palette used for segmentation map’)
args = parser.parse_args()
build the model from a config file and a checkpoint file
model = init_segmentor(args.config, args.checkpoint, device=args.device)
test a single image
result = inference_segmentor(model, args.img)
show the results
show_result_pyplot(model, args.img, result, get_palette(args.palette))
if name == ‘main’:
main()
修改完成后运行image_demo.py

出现上面的图说明环境没有问题了。
如果出现找不到color150.mat,百度搜索寻找一个,非常好找到。
=============================================================
下载数据集然后放到./tools/data/ade、下面然后解压。

数据集路径配置在./configs/base/datasets/ade20k.py。如果不要按照我配置的路径配置,可以在这里修改路径。

修改config/base/models文件夹下对应的upernet_swin.py将norm_cfg参数中的type由 SyncBN修改为BN 。将num_classes修改为150(可以不修改,我没有修改也没有出什么问题)。

修改config/swin/upernet_swin_tiny_patch4_window7_512x512_160k_ade20k.py的参数。
修改_base_,如下图:
base = [
‘…/base/models/upernet_swin.py’, ‘…/base/datasets/ade20k.py’,
‘…/base/default_runtime.py’, ‘…/base/schedules/schedule_160k.py’
]
默认是ade20k,如果选用其他的数据集,则修改对应的py脚本、比如pascal_voc12数据集
base = [
‘…/base/models/upernet_swin.py’, ‘…/base/datasets/pascal_voc12.py’,
‘…/base/default_runtime.py’, ‘…/base/schedules/schedule_160k.py’
]
修改所有num_classes,ade的类别是150。

修改data[‘samples_per_gpu’],这个就是batchsize,不能小于2。

修改train.py
通过from mmseg import __version__这句话找到mmesg适用的版本,然后将其MAX修改为1.3.13。不然会有版本的问题


参照下面的配置参数修改:
def parse_args():
parser = argparse.ArgumentParser(description=‘Train a segmentor’)
parser.add_argument(‘–config’,default=‘…/configs/swin/upernet_swin_tiny_patch4_window7_512x512_160k_ade20k.py’, help=‘train config file path’)
parser.add_argument(‘–work-dir’,default=‘output’, help=‘the dir to save logs and models’)
parser.add_argument(
‘–load-from’,default=‘…/upernet_swin_tiny_patch4_window7_512x512.pth’, help=‘the checkpoint file to load weights from’)
parser.add_argument(
如果你也是看准了Python,想自学Python,在这里为大家准备了丰厚的免费学习大礼包,带大家一起学习,给大家剖析Python兼职、就业行情前景的这些事儿。
一、Python所有方向的学习路线
Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、学习软件
工欲善其必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

三、全套PDF电子书
书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。

四、入门学习视频
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。


四、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

五、面试资料
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

成为一个Python程序员专家或许需要花费数年时间,但是打下坚实的基础只要几周就可以,如果你按照我提供的学习路线以及资料有意识地去实践,你就有很大可能成功!
最后祝你好运!!!
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注python)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
nimg.cn/img_convert/6c361282296f86381401c05e862fe4e9.png)
成为一个Python程序员专家或许需要花费数年时间,但是打下坚实的基础只要几周就可以,如果你按照我提供的学习路线以及资料有意识地去实践,你就有很大可能成功!
最后祝你好运!!!
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注python)
[外链图片转存中…(img-cAR9vA9G-1713390248635)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)