SegFormer的环境配置包括Windows和Linux系统(超级详细)

SegFormer的环境配置包括Windows和Linux系统

segformer的环境配置在于MMCV-full这个库的配置,在Windows下配置这个文件十分的折磨人。但是在我查询的过程中找到了一个别人复现的版本,可以避开MMCV这个库。
首先需要会配置pytorch环境,详细配置步骤见另外一篇文章
pytorch超级详细的安装教程
先不要急于配置,需要根据显卡的版本来确定配置的pytorch的版本。

Windows系统下面的配置(这是在Windows环境下找到的最简单的运行版本)

如果使用mmcv的方法进行配置,配置过程是十分的折磨人,并且经常会出现一些莫名其妙的错误,很是折磨人。但是我在查询的过程中找到了一个别人复现的版本,这个版本很简单就能够运行SegFormer,但是相对的效果可能没有官方版好。(我没有拿来实验,猜的)
这个项目只需要配置torch==1.2.0 ,项目连接如下:
项目地址
因为这个torch版本很早了,现在在官网上面下载的pytorch版本都很高,目前已经出到2.0的版本了,因此这个环境需要下载之前的pytorch版本,具体下载方法看上面链接里面的文章,链接如下:
pytorch以往版本链接
配置好环境之后,直接打开运行项目中的predict.py就可以了。按照操作输入图片路径就可以
在这里插入图片描述效果图如下:
在这里插入图片描述

Linux系统下环境配置

因为模型版本很早,因此GitHub上面的代码给出的cuda版本是10.2,但是目前服务器显卡有很多是30系列的显卡(3090之类的),,该系列的显卡已经不支持cuda版本是10.x的环境了,需要11.x的环境,博主在踩了居多坑的之后终于运行成功。
segformer-Github地址
首先是环境部分:

  • 显卡3090
  • 环境:pytorch1.7.0
  • CUDA:11.1(安装mmcv的时候按照版本是11.0安装的)
  • mmcv-full == 1.2.7(根据网上的方案尝试了1.4.2,1.6.1全部失败,把环境都搞坏了)
  • 其他需要安装的包如下:
pip install torchvision==0.8.2
pip install timm==0.3.2
pip install opencv-python==4.5.1.48
pip install IPython

我是先安装的mmcv-full在安装的上面的包
mmcv-full版本
如果设置的pytorch和cuda版本与上面的一致,直接运行下面的命令就好

pip install mmcv-full==1.2.7 -f https://download.openmmlab.com/mmcv/dist/cu110/torch1.7.0/index.html

简直不要太方便
安装完这些包之后,需要执行一条命令,需要注意此时目录应该在Segformer下面

pip install -r requirements.txt

完成上面的步骤之后
需要在再执行一条命令

pip install -e . --user

网上说如果这一步出现错误是mmcv-full配置出现错误的原因,我按照上面的方法进行配置并没有出现错误
然后需要下载权重文件,建议直接下载到Segformer文件夹下面下载,我下载这两个,下载链接在GitHub链接里面。
在这里插入图片描述下载完成之后,执行命令就可以看到结果图了
命令如下:

python demo/image_demo.py demo/demo.png local_configs/segformer/B1/segformer.b1.1024x1024.city.160k segformer.b1.1024x1024.city.160k.pth --device cuda:0 --palette cityscapes

注意如果选择ade的模型文件,所有文件都要与ade有关,如果选择city的模型文件,语句中的所有文件都要是city相关的,最后一个参数需要修改为cityscapes,如果选择ade同样
结果图如下:
在这里插入图片描述在这里插入图片描述

  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
Segformer是一种用于图像分割任务的深度学习模型,它是在Transformer架构的基础上进行改和应用的。Segformer通过将图像分割任务转为像素级分类问题,实现了对图像中每个像素的分类,从而达到图像分割的目的。 Segformer的训练过程通常包括以下几个步骤: 1. 数据准备:首先需要准备用于训练的图像数据集和对应的标签。通常情况下,图像数据集会被划分为训练集、验证集和测试集。 2. 模型构建:Segformer模型是基于Transformer架构进行改进的,因此需要构建一个包含Transformer编码器和解码器的网络结构。编码器用于提取图像特征,解码器用于将特征映射到像素级别的分类结果。 3. 损失函数定义:为了训练Segformer模型,需要定义一个适合图像分割任务的损失函数。常用的损失函数包括交叉熵损失函数、Dice损失函数等。 4. 模型训练:使用准备好的数据集和定义好的损失函数,通过反向传播算法来更新模型参数,使得模型能够逐渐学习到更好的特征表示和分类能力。通常使用梯度下降算法来进行参数更新。 5. 模型评估:在训练过程中,可以使用验证集来评估模型的性能,常用的评估指标包括像素准确率、平均交并比(mIoU)等。 6. 模型调优:根据评估结果,可以对模型进行调优,例如调整学习率、增加训练数据、调整网络结构等。 7. 模型测试:在训练完成后,可以使用测试集对模型进行测试,评估其在未见过的数据上的性能。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

henu-于笨笨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值