【YOLOX】の 填坑指南

本以为,配置环境是最难的阶段,没想到…


报错1:ModuleNotFoundError: No module named ‘yolox’

在这里插入图片描述

解决方法

主要因为一级目录搜索包原则:同级搜索,向下搜索,不支持向父级搜索。在pycharm等IDE中,从项目根路径开始向下搜索,train.py是二级目录,yolox是一级目录,而 train.py 是二级目录无法搜索一级目录yolox包。

因此在 from yolox.core import Trainer, launch 上面添加如下代码(注意要将路径替换成自己项目的路径)即可:

import sys
sys.path.append('/data3/zhanghuiyong/YOLOX/')

参考博客


报错2:ImportError: dlopen:cannot load any more object with static TLS

在这里插入图片描述

解决方法

1. 更换 import xxx 顺序,将 import cv2 放到 import torch 之前。但在有些文件中,import torch 和import cv2 并没有同时出现如下图所示。

在这里插入图片描述
因此,可以将最终报错所需要的文件放到 train.py 的 import torch 前,如下图所示。

在这里插入图片描述

2. 此外,在查阅相关博客时发现,一些博主能够成功将程序运行起来时,opencv 的版本为2.7的版本,因此我还试着将 opencv-python 的版本,由 4.5 的高版本换为 3.1 的低版本。所以如果更换import 顺序没有作用的话,可以尝试降低 openv-python 的版本。

在这里插入图片描述
在这里插入图片描述

关于如何降低 opencv-python 的版本:

  1. 卸载 opencv-python: pip uninstall opencv-python
  2. 从网站 https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/opencv-python/ 下载对应的whl版本到一个任意文件夹中
  3. cd 到对应的文件夹,执行:pip3 install opencv_python-4.1.0.25-cp37-cp37m-manylinux1_x86_64.whl 进行安装。

或者

  1. 卸载 opencv-python: pip uninstall opencv-python
  2. 安装 opencv-python: pip install opencv-python==3.1.0.4

参考博客


报错3: Running setup.py install for apex … error

在通过如下命令安装 apex 时

git clone https://github.com/NVIDIA/apex
cd apex
pip3 install -v --disable-pip-version-check --no-cache-dir --global-option="--cpp_ext" --global-option="--cuda_ext" ./

报错:

RuntimeError: Error compiling objects for extension
Running setup.py install for apex … error
ERROR: Command errored out with exit status 1: /data3/zhanghuiyong/anaconda3/envs/YOLOX/bin/python3 -u -c ‘import io, os, sys, setuptools, tokenize; sys.argv[0] = ‘"’"’/tmp/pip-req-build-xtdi0urj/setup.py’"’"’; file=’"’"’/tmp/pip-req-build-xtdi0urj/setup.py’"’"’;f = getattr(tokenize, ‘"’"‘open’"’"’, open)(file) if os.path.exists(file) else io.StringIO(’"’"‘from setuptools import setup; setup()’"’"’);code = f.read().replace(’"’"’\r\n’"’"’, ‘"’"’\n’"’"’);f.close();exec(compile(code, file, ‘"’"‘exec’"’"’))’ --cpp_ext --cuda_ext install --record /tmp/pip-record-zvi4kbo5/install-record.txt --single-version-externally-managed --compile --install-headers /data3/zhanghuiyong/anaconda3/envs/YOLOX/include/python3.6m/apex Check the logs for full command output.

在这里插入图片描述

解决方法

这里问题的主要原因是 cuda 和 torch 版本不一致所导致的,我的cuda是10.2,pytorch1.9 的版本,所以会有这样的报错。若cuda版本不是很高,则可以改变pytorch的版本;若是感觉麻烦,可以通过修改 setup.py 代码,直接忽略版本检查。

以下介绍如何进行修改:

  1. 打开下载的软件安装包apex,找到setup.py文件。
  2. 将 setup.py 里面的 check_cuda_torch_binary_vs_bare_metal 函数进行更改,直接return,如下图所示:

在这里插入图片描述
然后再执行安装指令:

pip3 install -v --disable-pip-version-check --no-cache-dir --global-option="--cpp_ext" --global-option="--cuda_ext" ./

此时可能还会报相同的错误,需要更换指令进行安装。 相关博客提到:

apex不能直接使用pip install来安装,用这种方式安装之后会报错。
具体应该使用如下方法安装:python3 setup.py install

最后安装成功,如下图。

在这里插入图片描述

参考博客


报错4:RuntimeError: The NVIDIA driver on your system is too old.

RuntimeError: The NVIDIA driver on your system is too old (found version 10010). Please update your GPU driver by downloading and installing a new version from the URL: http://www.nvidia.com/Download/index.aspx Alternatively, go to: https://pytorch.org to install a PyTorch version that has been compiled with your version of the CUDA driver.

在这里插入图片描述

解决方法

这里问题的主要原因也是 cuda 和 torch 版本不一致所导致的,实验室的cuda是10.2的版本,pytorch 是 1.9 的版本,但官方(可以点击链接查看) 给出的与 cuda10.2版本对应的pytorch 版本应该是 1.7的,因此在实验室不能改变cuda 版本的情况下我只能将 pytorch 的版本降低。

在这里插入图片描述

步骤:

  1. 卸载pytorch
conda uninstall pytorch
conda uninstall libtorch
  1. 安装pytorch
conda install pytorch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2 cudatoolkit=10.1

参考博客


报错5: PackageNotFoundError: Packages missing in current channels:

解决方法

主要原因是因为镜像源链接里没有包含 pytorch的,因此需要额外添加。通过如下指令添加 pytorch 额外镜像源链接:

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/noarch
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/linux-64
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/noarch
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/linux-64

添加之后,如图所示

在这里插入图片描述

参考博客

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果你想为YOLOX创建一个基于PyQt的平台,可以按照以下步骤进行操作: 1. 安装PyQt库:使用pip安装PyQt库,可以通过以下命令安装: ``` pip install PyQt5 ``` 2. 创建主窗口:使用PyQt创建一个主窗口,可以参考以下示例代码: ```python import sys from PyQt5.QtWidgets import QApplication, QMainWindow class MainWindow(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle("YOLOX Platform") if __name__ == "__main__": app = QApplication(sys.argv) window = MainWindow() window.show() sys.exit(app.exec_()) ``` 3. 添加YOLOX功能:在主窗口中添加YOLOX的相关功能,例如加载模型、目标检测、结果显示等。你可以根据YOLOX的API文档和示例代码来实现这些功能。 4. 设计用户界面:使用PyQt的布局管理器(如QVBoxLayout、QHBoxLayout等)来设计用户界面,添加按钮、文本框、图像显示区域等。可以参考PyQt的官方文档或其他教程来学习如何使用布局管理器。 5. 连接信号与槽:使用PyQt的信号与槽机制来连接用户界面的组件与相应的功能。例如,点击一个按钮后触发加载模型的函数,或者在文本框中输入图像路径后触发目标检测的函数。 6. 运行平台:运行你的平台,测试各个功能是否正常工作,并根据需要进行调整和优化。 请注意,以上步骤只是一个简单的指南,你需要根据自己的需求和具体情况进行适当的修改和扩展。此外,还可以考虑添加其他功能,如模型训练、模型评估、数据集管理等,以使平台更加完善和实用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值