问题已解决,请查看以下文章:
https://blog.youkuaiyun.com/ELSA001/article/details/120918082?spm=1001.2014.3001.5501
刚刚在训练yolox_s模型的时候,遇到了如下错误:
2021-10-23 10:19:46 | ERROR | yolox.core.launch:98 - An error has been caught in function 'launch', process 'MainProcess' (44024), thread 'MainThread' (540):
FileNotFoundError: [Errno 2] No such file or directory: 'yumi102.xml'
提示没有找到这个文件:
但问题是我的文件里面有的呀:
并且还报了:
2021-10-23 10:19:46 | INFO | yolox.core.trainer:183 - Training of experiment is done and the best AP is 0.00
the best AP is 0.00
AP = 0
这个是不是一个很大的问题呢?
完整报错信息如下:
2021-10-23 10:19:46 | INFO | yolox.core.trainer:183 - Training of experiment is done and the best AP is 0.00
2021-10-23 10:19:46 | ERROR | yolox.core.launch:98 - An error has been caught in function 'launch', process 'MainProcess' (44024), thread 'MainThread' (540):
Traceback (most recent call last):
File "tools\train.py", line 125, in <module>
launch(
└ <function launch at 0x0000026C80EE7550>
> File "e:\yolox\yolox\core\launch.py", line 98, in launch
main_func(*args)
│ └ (╒══════════════════╤════════════════════════════════════════════════════════════════════════════════════════════════════════...
└ <function main at 0x0000026C82F6F3A0>
File "tools\train.py", line 110, in main
trainer.train()
│ └ <function Trainer.train at 0x0000026C822CFC10>
└ <yolox.core.trainer.Trainer object at 0x0000026C83007A30>
File "e:\yolox\yolox\core\trainer.py", line 72, in train
self.train_in_epoch()
│ └ <function Trainer.train_in_epoch at 0x0000026C82F3D550>
└ <yolox.core.trainer.Trainer object at 0x0000026C83007A30>
File "e:\yolox\yolox\core\trainer.py", line 82, in train_in_epoch
self.after_epoch()
│ └ <function Trainer.after_epoch at 0x0000026C82F4BB80>
└ <yolox.core.trainer.Trainer object at 0x0000026C83007A30>
File "e:\yolox\yolox\core\trainer.py", line 207, in after_epoch
self.evaluate_and_save_model()
│ └ <function Trainer.evaluate_and_save_model at 0x0000026C82F4BE50>
└ <yolox.core.trainer.Trainer object at 0x0000026C83007A30>
File "e:\yolox\yolox\core\trainer.py", line 302, in evaluate_and_save_model
ap50_95, ap50, summary = self.exp.eval(
│ │ └ <function Exp.eval at 0x0000026C82F6F9D0>
│ └ ╒══════════════════╤═════════════════════════════════════════════════════════════════════════════════════════════════════════...
└ <yolox.core.trainer.Trainer object at 0x0000026C83007A30>
File "e:\yolox\yolox\exp\yolox_base.py", line 284, in eval
return evaluator.evaluate(model, is_distributed, half)
│ │ │ │ └ False
│ │ │ └ False
│ │ └ YOLOX(
│ │ (backbone): YOLOPAFPN(
│ │ (backbone): CSPDarknet(
│ │ (stem): Focus(
│ │ (conv): BaseConv(
│ │ (conv): ...
│ └ <function VOCEvaluator.evaluate at 0x0000026C82F3DC10>
└ <yolox.evaluators.voc_evaluator.VOCEvaluator object at 0x0000026C8E4A9A00>
File "e:\yolox\yolox\evaluators\voc_evaluator.py", line 128, in evaluate
eval_results = self.evaluate_prediction(data_list, statistics)
│ │ │ └ tensor([ 0.6692, 1.2153, 30.0000], device='cuda:0')
│ │ └ {0: (tensor([[ 65.5363, 148.8881, 314.1370, 348.9427],
│ │ [102.8350, -30.9026, 548.5400, 365.2217],
│ │ [ 46.0711, -...
│ └ <function VOCEvaluator.evaluate_prediction at 0x0000026C82F3DD30>
└ <yolox.evaluators.voc_evaluator.VOCEvaluator object at 0x0000026C8E4A9A00>
File "e:\yolox\yolox\evaluators\voc_evaluator.py", line 205, in evaluate_prediction
mAP50, mAP70 = self.dataloader.dataset.evaluate_detections(
│ │ │ └ <function VOCDetection.evaluate_detections at 0x0000026C82F4B670>
│ │ └ <yolox.data.datasets.voc.VOCDetection object at 0x0000026C8E4A9B20>
│ └ <torch.utils.data.dataloader.DataLoader object at 0x0000026C8E4A99D0>
└ <yolox.evaluators.voc_evaluator.VOCEvaluator object at 0x0000026C8E4A9A00>
File "e:\yolox\yolox\data\datasets\voc.py", line 271, in evaluate_detections
mAP = self._do_python_eval(output_dir, iou)
│ │ │ └ 0.5
│ │ └ 'C:\\Users\\ASUS\\AppData\\Local\\Temp\\tmp3b5fh8xp'
│ └ <function VOCDetection._do_python_eval at 0x0000026C82F4B820>
└ <yolox.data.datasets.voc.VOCDetection object at 0x0000026C8E4A9B20>
File "e:\yolox\yolox\data\datasets\voc.py", line 335, in _do_python_eval
rec, prec, ap = voc_eval(
└ <function voc_eval at 0x0000026C82F3DE50>
File "e:\yolox\yolox\evaluators\voc_eval.py", line 93, in voc_eval
recs[imagename] = parse_rec(annopath.format(imagename))
│ │ │ │ │ └ 'yumi102'
│ │ │ │ └ <method 'format' of 'str' objects>
│ │ │ └ '{:s}.xml'
│ │ └ <function parse_rec at 0x0000026C82F3D700>
│ └ 'yumi102'
└ {}
File "e:\yolox\yolox\evaluators\voc_eval.py", line 17, in parse_rec
tree = ET.parse(filename)
│ │ └ 'yumi102.xml'
│ └ <function parse at 0x0000026C80DE3C10>
└ <module 'xml.etree.ElementTree' from 'E:\\Anaconda3\\envs\\torch_G\\lib\\xml\\etree\\ElementTree.py'>
File "E:\Anaconda3\envs\torch_G\lib\xml\etree\ElementTree.py", line 1202, in parse
tree.parse(source, parser)
│ │ │ └ None
│ │ └ 'yumi102.xml'
│ └ <function ElementTree.parse at 0x0000026C80DDACA0>
└ <xml.etree.ElementTree.ElementTree object at 0x0000026C8CE359A0>
File "E:\Anaconda3\envs\torch_G\lib\xml\etree\ElementTree.py", line 584, in parse
source = open(source, "rb")
└ 'yumi102.xml'
FileNotFoundError: [Errno 2] No such file or directory: 'yumi102.xml'
我训练环境的搭建是以这个博客为主的:
YOLOX训练环境搭建问题总结
希望有遇到过这个问题的大佬可以回答一下这个问题如何解决呢?我是需要修改什么呢?