Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

training Issues!! FileNotFoundError: [Errno 2] No such file or directory: 'xxx.xml' #741

Closed
Wanrui-account opened this issue Sep 26, 2021 · 1 comment

Comments

@Wanrui-account
Copy link

Writing none VOC results file
Writing blue VOC results file
Writing red VOC results file
Writing white VOC results file
Writing yellow VOC results file
Eval IoU : 0.50
2021-09-26 16:57:23 | INFO | yolox.core.trainer:183 - Training of experiment is done and the best AP is 0.00
2021-09-26 16:57:23 | ERROR | yolox.core.launch:70 - An error has been caught in function 'launch', process 'MainProcess' (21384), thread 'MainThread' (20252):
Traceback (most recent call last):

File "tools\train.py", line 113, in
launch(
└ <function launch at 0x00000135393BF700>

File "D:\86186\anaconda\envs\yolov5\lib\site-packages\yolox-0.1.0-py3.8-win-amd64.egg\yolox\core\launch.py", line 70, in launch
main_func(*args)
│ └ (╒══════════════════╤════════════════════════════════════════════════════════════════════════════════════════════════════════...
└ <function main at 0x000001353AA1AC10>

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

File "D:\86186\anaconda\envs\yolov5\lib\site-packages\yolox-0.1.0-py3.8-win-amd64.egg\yolox\core\trainer.py", line 70, in train
self.train_in_epoch()
│ └ <function Trainer.train_in_epoch at 0x000001353A9EC310>
└ <yolox.core.trainer.Trainer object at 0x000001353AA336A0>

File "D:\86186\anaconda\envs\yolov5\lib\site-packages\yolox-0.1.0-py3.8-win-amd64.egg\yolox\core\trainer.py", line 80, in train_in_epoch
self.after_epoch()
│ └ <function Trainer.after_epoch at 0x000001353A9FA550>
└ <yolox.core.trainer.Trainer object at 0x000001353AA336A0>

File "D:\86186\anaconda\envs\yolov5\lib\site-packages\yolox-0.1.0-py3.8-win-amd64.egg\yolox\core\trainer.py", line 210, in after_epoch
self.evaluate_and_save_model()
│ └ <function Trainer.evaluate_and_save_model at 0x000001353A9FA820>
└ <yolox.core.trainer.Trainer object at 0x000001353AA336A0>

File "D:\86186\anaconda\envs\yolov5\lib\site-packages\yolox-0.1.0-py3.8-win-amd64.egg\yolox\core\trainer.py", line 293, in evaluate_and_save_model
ap50_95, ap50, summary = self.exp.eval(evalmodel, self.evaluator, self.is_distributed)
│ │ │ │ │ │ │ └ False
│ │ │ │ │ │ └ <yolox.core.trainer.Trainer object at 0x000001353AA336A0>
│ │ │ │ │ └ <yolox.evaluators.voc_evaluator.VOCEvaluator object at 0x0000013545E9CC40>
│ │ │ │ └ <yolox.core.trainer.Trainer object at 0x000001353AA336A0>
│ │ │ └ YOLOX(
│ │ │ (backbone): YOLOPAFPN(
│ │ │ (backbone): CSPDarknet(
│ │ │ (stem): Focus(
│ │ │ (conv): BaseConv(
│ │ │ (conv): ...
│ │ └ <function Exp.eval at 0x000001353AA1D310>
│ └ ╒══════════════════╤═════════════════════════════════════════════════════════════════════════════════════════════════════════...
└ <yolox.core.trainer.Trainer object at 0x000001353AA336A0>

File "D:\86186\anaconda\envs\yolov5\lib\site-packages\yolox-0.1.0-py3.8-win-amd64.egg\yolox\exp\yolox_base.py", line 251, 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 0x000001353A9EC9D0>
└ <yolox.evaluators.voc_evaluator.VOCEvaluator object at 0x0000013545E9CC40>

File "D:\86186\anaconda\envs\yolov5\lib\site-packages\yolox-0.1.0-py3.8-win-amd64.egg\yolox\evaluators\voc_evaluator.py", line 114, in evaluate
eval_results = self.evaluate_prediction(data_list, statistics)
│ │ │ └ tensor([ 80.0733, 3.7156, 793.0000], device='cuda:0')
│ │ └ {0: (None, None, None), 1: (tensor([[ 240.1562, 310.3125, 453.1250, 484.6875],
│ │ [ -40.1562, 393.1250, 138.7500, ...
│ └ <function VOCEvaluator.evaluate_prediction at 0x000001353A9ECAF0>
└ <yolox.evaluators.voc_evaluator.VOCEvaluator object at 0x0000013545E9CC40>

File "D:\86186\anaconda\envs\yolov5\lib\site-packages\yolox-0.1.0-py3.8-win-amd64.egg\yolox\evaluators\voc_evaluator.py", line 182, in evaluate_prediction
mAP50, mAP70 = self.dataloader.dataset.evaluate_detections(all_boxes, tempdir)
│ │ │ │ │ └ 'C:\Users\86186\AppData\Local\Temp\tmpb0to9d64'
│ │ │ │ └ [[array([], shape=(0, 5), dtype=float32), array([], shape=(0, 5), dtype=float32), array([[3.0843750e+02, 3.0375000e+02, 4.303...
│ │ │ └ <function VOCDetection.evaluate_detections at 0x000001353A9FA040>
│ │ └ <yolox.data.datasets.voc.VOCDetection object at 0x000001353AA33100>
│ └ <torch.utils.data.dataloader.DataLoader object at 0x0000013545E9C940>
└ <yolox.evaluators.voc_evaluator.VOCEvaluator object at 0x0000013545E9CC40>

File "D:\86186\anaconda\envs\yolov5\lib\site-packages\yolox-0.1.0-py3.8-win-amd64.egg\yolox\data\datasets\voc.py", line 173, in evaluate_detections
mAP = self._do_python_eval(output_dir, iou)
│ │ │ └ 0.5
│ │ └ 'C:\Users\86186\AppData\Local\Temp\tmpb0to9d64'
│ └ <function VOCDetection._do_python_eval at 0x000001353A9FA1F0>
└ <yolox.data.datasets.voc.VOCDetection object at 0x000001353AA33100>

File "D:\86186\anaconda\envs\yolov5\lib\site-packages\yolox-0.1.0-py3.8-win-amd64.egg\yolox\data\datasets\voc.py", line 237, in _do_python_eval
rec, prec, ap = voc_eval(
└ <function voc_eval at 0x000001353A9EC8B0>

File "D:\86186\anaconda\envs\yolov5\lib\site-packages\yolox-0.1.0-py3.8-win-amd64.egg\yolox\evaluators\voc_eval.py", line 93, in voc_eval
recs[imagename] = parse_rec(annopath.format(imagename))
│ │ │ │ │ └ '02804'
│ │ │ │ └ <method 'format' of 'str' objects>
│ │ │ └ '{:s}.xml'
│ │ └ <function parse_rec at 0x000001353A9EC3A0>
│ └ '02804'
└ {}

File "D:\86186\anaconda\envs\yolov5\lib\site-packages\yolox-0.1.0-py3.8-win-amd64.egg\yolox\evaluators\voc_eval.py", line 17, in parse_rec
tree = ET.parse(filename)
│ │ └ '02804.xml'
│ └ <function parse at 0x0000013539320A60>
└ <module 'xml.etree.ElementTree' from 'D:\86186\anaconda\envs\yolov5\lib\xml\etree\ElementTree.py'>

File "D:\86186\anaconda\envs\yolov5\lib\xml\etree\ElementTree.py", line 1202, in parse
tree.parse(source, parser)
│ │ │ └ None
│ │ └ '02804.xml'
│ └ <function ElementTree.parse at 0x000001353931FAF0>
└ <xml.etree.ElementTree.ElementTree object at 0x000001356E8DCD30>

File "D:\86186\anaconda\envs\yolov5\lib\xml\etree\ElementTree.py", line 584, in parse
source = open(source, "rb")
└ '02804.xml'

FileNotFoundError: [Errno 2] No such file or directory: '02804.xml'

@MangoloD
Copy link

Modify the _do_python_eval method under yolox/data/datasets/voc.py

annopath = os.path.join(rootpath, "Annotations", "{:s}.xml")

to

annopath = os.path.join(rootpath, "Annotations", "{}.xml")

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants