YOLOX安装及训练

本文记录了使用YOLOX在CUDA10.2环境下进行训练的过程,包括创建虚拟环境、安装依赖、训练数据时遇到的错误及解决方案。在训练过程中,遇到的数据加载错误和‘_C’导入问题都得到了解决,最终实现训练和验证的正常运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

官方git:https://github.com/Megvii-BaseDetection/YOLOX.git

步骤基本是按官方说明进行的。

cuda10.2

1.创建虚拟环境:conda create -n yolox python=3.7

2.安装torch(先进入yolox环境:conda activate yolox)

pip install torch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2

3.安装YOLOX

git clone git@github.com:Megvii-BaseDetection/YOLOX.git
cd YOLOX
pip install -U pip && pip install -r requirements.txt
pip install -v -e .  # or  python setup.py develop

4.安装apex

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

5.安装pycocotools

pip install cython; pip install 'git+https://github.com/cocodataset/cocoapi.git#subdirectory=PythonAPI'

或者直接安装
pip install cython; pip install pycocotools

6.准备自己的数据集(我自己用的是640*640大小的图,coco格式)

7.训练数据

(先在YOLOX/yolox/exp/yolox_base.py 文件中修改类别,图像大小等配置信息)

 tools/train.py -n yolox-s -d 1 -b 6 --fp16 -o

8.训练报错:

AssertionError: Caught AssertionError in DataLoader worker process 0.
Original Traceback (most recent call last):

File "/home/lijq/deeplearn/YOLOX/yolox/data/datasets/mosaicdetection.py", line 91, in getitem
img, _labels, _, _ = self._dataset.pull_item(index)
File "/home/ll/deeplearn/YOLOX/yolox/data/datasets/coco.py", line 99, in pull_item
assert img is not None

修改:YOLOX/yolox/data/datasets/coco.py文件为:

def pull_item(self, index):
        id_ = self.ids[index]
        im_ann = self.coco.loadImgs(id_)[0]
        width = im_ann["width"]
        height = im_ann["height"]
        name_f = im_ann["file_name"]
        # load image and preprocess
        img_file = os.path.join(
        #self.data_dir, self.name, "{:012}".format(id_) + ".jpg"
        self.data_dir, self.name, "{}".format(name_f)
        )
        img = cv2.imread(img_file)

 9.训练正常后再验证阶段可能会报的错:ImportError: cannot import name '_C' from 'yolox' (/root/Desktop/YOLOX-main/yolox/__init__.py) 

解决方案:python setup.py develop

 10.训练和验证一切正常,结束。

### YOLOX框架的安装方法 YOLOX 是一种高效的实时目标检测算法,其安装过程相对简单。以下是详细的安装指南: #### 1. 安装依赖项 在开始之前,需确保 Python 和 PyTorch 的环境已配置完毕。推荐使用 Anaconda 或 Miniconda 来管理虚拟环境。 创建并激活一个新的 Conda 虚拟环境: ```bash conda create -n yolox_env python=3.8 conda activate yolox_env ``` 接着安装必要的库和工具包: ```bash pip install numpy opencv-python tqdm Pillow matplotlib cython scipy ``` #### 2. 安装 PyTorch 根据操作系统和 GPU 配置选择合适的 PyTorch 版本。例如,如果使用 CUDA 11.3,则可以通过以下命令安装: ```bash pip install torch==1.9.0+cu111 torchvision==0.10.0+cu111 torchaudio===0.9.0 -f https://download.pytorch.org/whl/torch_stable.html ``` 如果没有 GPU 支持,可以选择 CPU-only 版本: ```bash pip install torch torchvision torchaudio ``` #### 3. 克隆 YOLOX 仓库 从官方 GitHub 仓库克隆 YOLOX 源代码: ```bash git clone https://github.com/Megvii-BaseDetection/YOLOX.git cd YOLOX ``` #### 4. 编译 C++ 扩展模块 YOLOX 使用了一些加速组件(如 `COCOEvaluator`),这些组件需要编译才能正常工作。执行以下命令完成编译: ```bash python setup.py develop ``` #### 5. 测试安装是否成功 为了验证安装是否正确,可以尝试运行预训练模型推理脚本。下载官方提供的权重文件,并测试一张图片: ```bash wget https://github.com/Megvii-BaseDetection/storage/releases/download/0.3.0/yolox_s.pth python tools/demo.py image -f exps/default/yolox_s.py -c yolox_s.pth --path assets/dog.jpg --conf 0.3 --nms 0.45 --tsize 640 --save_result ``` 以上步骤完成后即可正常使用 YOLOX 进行目标检测任务[^3]。 --- ### 注意事项 - 如果遇到权限问题或其他错误,请确认当前目录是否有写入权限。 - 对于自定义数据集的支持,可能还需要调整配置文件中的路径设置以及类别数量等内容[^2]。 ---
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值