用YOLOX训练自己的数据集报错


2021-11-29 22:12:18 | ERROR    | yolox.core.launch:98 - An error has been caught in function 'launch', process 'MainProcess' (6368), thread 'MainThread' (1312):
Traceback (most recent call last):

  File "tools\train.py", line 128, in <module>
    launch(
    └ <function launch at 0x000002D04D513040>

> File "e:\yolox\yolox\core\launch.py", line 98, in launch
    main_func(*args)
    │          └ (╒══════════════════╤════════════════════════════════════════════════════════════════════════════════════════════════════════...
    └ <function main at 0x000002D04E1C0F70>

  File "tools\train.py", line 113, in main
    trainer.train()
    │       └ <function Trainer.train at 0x000002D04CCF6040>
    └ <yolox.core.trainer.Trainer object at 0x000002D04E1CC490>

  File "e:\yolox\yolox\core\trainer.py", line 70, in train
    self.before_train()
    │    └ <function Trainer.before_train at 0x000002D04E19D820>
    └ <yolox.core.trainer.Trainer object at 0x000002D04E1CC490>

  File "e:\yolox\yolox\core\trainer.py", line 160, in before_train
    occupy_mem(self.local_rank)
    │          │    └ 0
    │          └ <yolox.core.trainer.Trainer object at 0x000002D04E1CC490>
    └ <function occupy_mem at 0x000002D04DA58B80>

  File "e:\yolox\yolox\utils\metric.py", line 35, in occupy_mem
    total, used = get_total_and_free_memory_in_Mb(cuda_device)
                  │                               └ 0
                  └ <function get_total_and_free_memory_in_Mb at 0x000002D04DA58AF0>

  File "e:\yolox\yolox\utils\metric.py", line 27, in get_total_and_free_memory_in_Mb
    total, used = devices_info[int(cuda_device)].split(",")
                  │                └ 0
                  └ ['']

ValueError: not enough values to unpack (expected 2, got 1)

训练自己的数据集时候报这个错是什么原因,没改动过上面报错说的文件内容啊。

cuda的问题把,最后那句报错的意思就是希望用逗号能够分离两个变量出来,但是只分离得到了一个。
也就是说最大的可能性就是你的cuda或者cudnn没有安装好。正常情况下报错语句上面的那行命令,

img

执行命令之后
···c++
nvidia-smi --query-gpu=memory.total,memory.used --format=csv,nounits,noheader
···
应该是这样子的两个结果

img