yolox 训练报错如下代码块:

根据错误提示,在voc.py文件中读取图片时发生异常。
原因:yolox给的源码读取的是lpg格式的图片,而我的输入是png格式的图片,所以报错。
(也有可能是路径没有给正确,无法读取到图片数据)

AssertionError: Caught AssertionError in DataLoader worker process 0.
Original Traceback (most recent call last):
  File "/home/crush/ProgramFiles/anaconda3/lib/python3.7/site-packages/torch/utils/data/_utils/worker.py", line 287, in _worker_loop
    data = fetcher.fetch(index)
  File "/home/crush/ProgramFiles/anaconda3/lib/python3.7/site-packages/torch/utils/data/_utils/fetch.py", line 44, in fetch
    data = [self.dataset[idx] for idx in possibly_batched_index]
  File "/home/crush/ProgramFiles/anaconda3/lib/python3.7/site-packages/torch/utils/data/_utils/fetch.py", line 44, in <listcomp>
    data = [self.dataset[idx] for idx in possibly_batched_index]
  File "/home/crush/YOLOX/yolox/data/datasets/datasets_wrapper.py", line 110, in wrapper
    ret_val = getitem_fn(self, index)
  File "/home/crush/YOLOX/yolox/data/datasets/mosaicdetection.py", line 95, in __getitem__
    img, _labels, _, img_id = self._dataset.pull_item(index)
  File "/home/crush/YOLOX/yolox/data/datasets/voc.py", line 242, in pull_item
    img = self.load_resized_img(index)
  File "/home/crush/YOLOX/yolox/data/datasets/voc.py", line 209, in load_resized_img
    img = self.load_image(index)
  File "/home/crush/YOLOX/yolox/data/datasets/voc.py", line 222, in load_image
    assert img is not None
AssertionError

解决:将voc.py文件的120行读取图片代码的jpg格式改为png,错误解决!

#self._imgpath = os.path.join("%s", "JPEGImages", "%s.jpg")
self._imgpath = os.path.join("%s", "JPEGImages", "%s.png")

更多推荐

yolox: AssertionError: Caught AssertionError in DataLoader worker process 0.