Ошибка значения при использовании обнаружения объекта roboflow Модель Yolov4 pytorch в пользовательском наборе данных

Мы используем Roboflow для обнаружения объектов с использованием модели Yolov4 Pytorch для нашего пользовательского набора данных. В процессе обучения мы получаем следующую ошибку.

      Traceback (most recent call last):
  File "./pytorch-YOLOv4/train.py", line 447, in <module>
    device=device, )
  File "./pytorch-YOLOv4/train.py", line 310, in train
    for i, batch in enumerate(train_loader):
  File "/usr/local/lib/python3.7/dist-packages/torch/utils/data/dataloader.py", line 345, in __next__
    data = self._next_data()
  File "/usr/local/lib/python3.7/dist-packages/torch/utils/data/dataloader.py", line 856, in _next_data
    return self._process_data(data)
  File "/usr/local/lib/python3.7/dist-packages/torch/utils/data/dataloader.py", line 881, in _process_data
    data.reraise()
  File "/usr/local/lib/python3.7/dist-packages/torch/_utils.py", line 394, in reraise
    raise self.exc_type(msg)
ValueError: Caught ValueError in DataLoader worker process 7.
Original Traceback (most recent call last):
  File "/content/pytorch-YOLOv4/dataset.py", line 382, in __getitem__
    out_bboxes1[:min(out_bboxes.shape[0], self.cfg.boxes)] = out_bboxes[:min(out_bboxes.shape[0], self.cfg.boxes)]
AttributeError: 'list' object has no attribute 'shape'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.7/dist-packages/torch/utils/data/_utils/worker.py", line 178, in _worker_loop
    data = fetcher.fetch(index)
  File "/usr/local/lib/python3.7/dist-packages/torch/utils/data/_utils/fetch.py", line 44, in fetch
    data = [self.dataset[idx] for idx in possibly_batched_index]
  File "/usr/local/lib/python3.7/dist-packages/torch/utils/data/_utils/fetch.py", line 44, in <listcomp>
    data = [self.dataset[idx] for idx in possibly_batched_index]
  File "/content/pytorch-YOLOv4/dataset.py", line 385, in __getitem__
    out_bboxes1[:min(out_bboxes.shape[0], self.cfg.boxes)] = out_bboxes[:min(out_bboxes.shape[0], self.cfg.boxes)]
ValueError: could not broadcast input array from shape (0) into shape (0,5)

1 ответ

Я не знаю информации о ваших параметрах, но в журнале что-то не так с вашим кодом:

      out_bboxes1[:min(out_bboxes.shape[0], self.cfg.boxes)] \
    = out_bboxes[:min(out_bboxes.shape[0], self.cfg.boxes)]

Первая ошибка говорит, что ваш параметр out_bboxes не имеет атрибута shape, потому что это listобъект. Таким образом, вы можете изменить его тип данных по своему усмотрению.

Другие вопросы по тегам