SETR项目运行记录

Posted 彭祥.

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SETR项目运行记录相关的知识,希望对你有一定的参考价值。

项目简要介绍

全称为Swin-Transformer-Semantic-Segmentation,看名字我们就知道使用的是transformer,做的是语义分割方面,使用的数据集是Cityscapes。在本文中我们并不对其原理进行解读,只是调试运行该项目。
项目下载地址:

https://github.com/fudan-zvg/SETR

项目采用了mmsegmentation框架,在博主看来不太易于学习与使用。在github上有大佬对其复现,感觉还不错,有需要的小伙伴可以去自行下载,本文还是以初始的代码为例进行调试。

基础配置

首先是按照项目中readme中给出的提示,创建对应环境:

conda create -n open-mmlab python=3.7 #创建conda环境
conda activate open-mmlab#激活环境

conda install pytorch=1.6.0 torchvision cudatoolkit=10.1 -c pytorch#按照pytorch

在执行安装pytorch时由于网络问题出错,再修改了响应时间后也于事无补,因此采用pip的方式。从而能够使用我们的镜像源下载,项目要求使用pytroch1.6,但1.6的版本与我的cuda不符,便选择了pytorch1.8,但在后面发现问题很大,没有合适的mmvc与之对应。因此还是老老实实使用1.6吧,

conda install pytorch==1.6.0 torchvision==0.7.0 cudatoolkit=10.2 -c pytorch

如果conda命令不行的话可以使用pip命令

pip install torch==1.6.0+cu101 torchvision==0.7.0+cu101 -f https://download.pytorch.org/whl/torch_stable.html

配置环境变量

set PATH=full\\path\\to\\your\\cpp\\compiler;%PATH%

安装相应包

pip install mmcv

从github上下载文件,这里由于我们使用pycharm便不需要执行了

git clone https://github.com/fudan-zvg/SETR.git
cd SETR
pip install -e .  # or "python setup.py develop"

根据requirements进行安装,里面是cityscapesscripts

pip install -r requirements/optional.txt

mklink /D data %DATA_ROOT%

运行配置

该部分是在我运行过程中出现的问题,可能别人运行时不会出现,因此只需要遇到相同错误时看一下即可。

运行train.py文件报错:上面mmcv安装时没有指定版本,导致mmcv版本不符。

AssertionError: MMCV==1.7.1 is used but incompatible. Please install mmcv>=[1, 1, 2], <=[1, 2, 7].

解决方法,卸载重装:

pip uninstall mmcv

重新安装并指定版本,我们就使用1.2.7好了

pip install mmcv==1.2.7


运行后再次报错:

ModuleNotFoundError: No module named 'mmcv._ext'

这是在开始安装mmcv-full的时候,没有指定版本,选择直接安装,如下:卸载

pip install mmcv-full

默认安装mmcv-full的方式,如果与环境里的cuda和torch版本不匹配,就容易出现上面报错
重新安装使用下面的命令格式:
其中,cu_version、torch_version分别对应cuda和torch的版本号

pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu_version/torch_version/index.html

通过查看包可知我们的torch为1.8.1,cuda为11.1

所以我们的命令为:

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

这里由于我们上面安装的是mmcv 1.2.4,那么mmcv-full也安装为1.2.7了

报错信息:

error: Microsoft Visual C++ 14.0 is required. Get it with “Build Tools for Visual Studio”: https://visualstudio.microsoft.com/downloads/ Tools":

失败了,无法创建轮子,并提升不是pip的问题,而是 Microsoft Visual C++ ,即缺少相关的接口导致的问题,这里有解决方法是安装对应版本的VS,这十好几个G不是闹着玩的吧,好在我们找到了其他解决办法,我们只要使用conda命令安装一个包即可:

conda install libpython m2w64-toolchain -c msys2

其实转念一想,VS这种应对大型项目的程序在这里出错,肯定是由于缺失某种环境导致的,而Anconda创建的conda环境可以说是独立的,那么只需要解决这个小环境中的缺失问题不就可以了吗。当然如果电脑空间足够大就直接安装好了,这种方法就是给我这种穷人准备的,呜呜呜,其实这种方法安装的也不少,大概几百M吧,等不用的适合直接连conda环境一块解决了。然而运行完成后再次安装依旧不成功。呜呜呜
难道没有方法了吗,不,既然无法造轮子,那么我们就把轮子给它

https://download.openmmlab.com/mmcv/dist/index.html

现在明白为啥一定要按照pytorch1.6了,mmcv在这里最高支持到pytorch1.8,而且还没有windows的,难怪之前一直报系统错误,先前虽然显示下载成功但实际上是下载的Linux的形式的报,自然也就无法安装了。没办法,只能先将pytorch卸载然后换成1.6了。

然后找一个有mmvc的1.6版本 ,进行安装

pip install torch==1.6.0+cu101 torchvision==0.7.0+cu101 -f https://download.pytorch.org/whl/torch_stable.html

了解了错误的根本我们再次使用命令来安装,记住要所有的都对应好。mmvc版本,cuda版本,pytorch版本

pip install mmcv-full==1.1.5 -f https://download.openmmlab.com/mmcv/dist/cu101/torch1.6.0/index.html

果然不出所料,成功了,哈哈哈


随后我们接着运行train.py文件,出现以下问题,这是我们没有给定参数导致的。

usage: train.py [-h] [--work-dir WORK_DIR] [--load-from LOAD_FROM]
                [--resume-from RESUME_FROM] [--no-validate]
                [--gpus GPUS | --gpu-ids GPU_IDS [GPU_IDS ...]] [--seed SEED]
                [--deterministic] [--options OPTIONS [OPTIONS ...]]
                [--launcher none,pytorch,slurm,mpi]
                [--local_rank LOCAL_RANK]
                config
train.py: error: the following arguments are required: config

这是需要给定参数,具体给定什么参数还需要我们研究一下。

以上是关于SETR项目运行记录的主要内容,如果未能解决你的问题,请参考以下文章

计算机视觉算法——基于Transformer的语义分割(SETR / Segmenter / SegFormer)

计算机视觉算法——基于Transformer的语义分割(SETR / Segmenter / SegFormer)

模型魔改---基于SETR模型的边缘检测

云笔记开发记录二:node-webkit 如何启动 express(更准确说是MEANJS) 项目?

如何使用`setr​​limit`来限制内存使用? RLIMIT_AS 杀得太快; RLIMIT_DATA、RLIMIT_RSS、RLIMIT_STACK 根本不杀死

电商平台项目