Anaconda+YOLOX踩坑

Scroll Down

引言

最近想用yolox模型做目标检测,因为不想因为这个模型污染自己已有的Python环境,就用Anaconda创建自己虚拟环境的方式想先跑个demo,可以却踩了很多坑,下面开始介绍一下

我踩得坑可能比你走过的路还多
出自--陈坤

代理问题

很多小伙伴相比都有科学上网的经验,可是如果你在电脑上挂了代理,在用git clone和conda install的时候都会出现问题
问题我忘记截图了,但都是HttpSockerConnectError之类的问题,有两种解决方案:

  1. 关闭代理
    image.png
  2. 配置代理
    在github中:
git config --global http.proxy http://127.0.0.1:port
git config --global https.proxy https://127.0.0.1:port

在anaconda中

conda config --set proxy_servers.http http://id:pw@address:port
conda config --set proxy_servers.https https://id:pw@address:port

找不到cuda

我们都知道判断cuda和cudnn在电脑中是否配置完成的一个判别方式就是输出

import torch
print(torch.cuda.is_available())

如果输出Fasle代表cuda配置不对,正常情况下在自己电脑中如果配置完成在powershell中运行:

nvcc -V

可以输出cuda版本和cuda driver等信息
image.png
在C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\extras\demo_suite目录下打开powershell(记住要打开powershell,直接双击会闪退)然后运行deviceQuery.exe和bindwidthTest.exe可以输出以下信息:
image.png
image.png
但是我遇到的情况非常奇怪,就是自己系统中cuda配置是完全没问题的,但是在anaconda下安装cuda和cudnn以及对应pytorch之后最后输出一直是False,这个问题困扰了我一天,最后终于尝试出解决方案:
问题在于你运行

pip3 install -r requirements.txt

conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch
conda install cudatoolkit=11.3
conda install cudnn=8.2.1

的先后顺序关系,如果先运行前者,默认安装的torch、torchvision等版本不是符合要求的cuda版本,因此要先运行后者,再运行前者,这样配置的环境才会没有问题。

yolox demo

改进一个模型之前肯定要先运行demo,但是yolox的demo.py中导入的包是yolox,但是用pip安装后总是会报错,显示yolox版本不符合要求,其实这个yolox包已经在工程目录中了,因此我们只需要把工程目录添加到包路径即可,在

from yolox.data.data_augment import ValTransform

前加入:

import sys
sys.path.append(r'F:\Python\Deep Learning\Model\YOLOX\YOLOX')

即可

每日一语

我踩得坑比你走的路还多!