yolov5 自己数据集训练报错


ValueError: Caught ValueError in DataLoader worker process 3.
Original Traceback (most recent call last):
  File "D:\aaa\envs\pao\lib\site-packages\torch\utils\data\_utils\worker.py", line 287, in _worker_loop
    data = fetcher.fetch(index)
  File "D:\aaa\envs\pao\lib\site-packages\torch\utils\data\_utils\fetch.py", line 49, in fetch
    data = [self.dataset[idx] for idx in possibly_batched_index]
  File "D:\aaa\envs\pao\lib\site-packages\torch\utils\data\_utils\fetch.py", line 49, in <listcomp>
    data = [self.dataset[idx] for idx in possibly_batched_index]
  File "D:\xiangmu\yolov5.0\utils\datasets.py", line 525, in __getitem__
    img, labels = load_mosaic(self, index)
  File "D:\xiangmu\yolov5.0\utils\datasets.py", line 698, in load_mosaic
    img4[y1a:y2a, x1a:x2a] = img[y1b:y2b, x1b:x2b]  # img4[ymin:ymax, xmin:xmax]
ValueError: could not broadcast input array from shape (579,527,3) into shape (579,527,4)

赋值时维度不一致,前面的img4是4通道的,后面img是3通道的。
猜测源码这里初始化img4时,训练集中有4通道带深度的图片,

img

可以排查下数据集尝试下。