'ValueError: not enough values to unpack' in YOLO v8 dataset.py

528 views Asked by At

When I use YOLO v8 (ultralytics) to train on my own dataset.

I use the cmd to run as below:

yolo pose train data=Jz.yaml model=yolov8s-pose.pt pretrained=True project=FileClip01 name=s_pretrain epochs=50 batch=4 device=0

The Jz.yaml:

# 数据集在 datasets 目录下的文件夹路径
path: FileClips

# 训练集、验证集、测试集相对于 path 的路径
train: images/train
val: images/val
test: images/val

kpt_shape: [2, 3]

names:
  0: jz_rect

There is the full traceback as below.

Traceback (most recent call last):
  File "/homeb/tangwuguo/miniconda3/envs/cv/bin/yolo", line 8, in <module>
    sys.exit(entrypoint())
  File "/homeb/tangwuguo/miniconda3/envs/cv/lib/python3.8/site-packages/ultralytics/yolo/cfg/__init__.py", line 391, in entrypoint
    getattr(model, mode)(**overrides)  # default args from model
  File "/homeb/tangwuguo/miniconda3/envs/cv/lib/python3.8/site-packages/ultralytics/yolo/engine/model.py", line 370, in train
    self.trainer.train()
  File "/homeb/tangwuguo/miniconda3/envs/cv/lib/python3.8/site-packages/ultralytics/yolo/engine/trainer.py", line 191, in train
    self._do_train(world_size)
  File "/homeb/tangwuguo/miniconda3/envs/cv/lib/python3.8/site-packages/ultralytics/yolo/engine/trainer.py", line 268, in _do_train
    self._setup_train(world_size)
  File "/homeb/tangwuguo/miniconda3/envs/cv/lib/python3.8/site-packages/ultralytics/yolo/engine/trainer.py", line 250, in _setup_train
    self.train_loader = self.get_dataloader(self.trainset, batch_size=batch_size, rank=RANK, mode='train')
  File "/homeb/tangwuguo/miniconda3/envs/cv/lib/python3.8/site-packages/ultralytics/yolo/v8/detect/train.py", line 43, in get_dataloader
    build_dataloader(self.args, batch_size, img_path=dataset_path, stride=gs, rank=rank, mode=mode,
  File "/homeb/tangwuguo/miniconda3/envs/cv/lib/python3.8/site-packages/ultralytics/yolo/data/build.py", line 81, in build_dataloader
    dataset = YOLODataset(
  File "/homeb/tangwuguo/miniconda3/envs/cv/lib/python3.8/site-packages/ultralytics/yolo/data/dataset.py", line 66, in __init__
    super().__init__(img_path, imgsz, cache, augment, hyp, prefix, rect, batch_size, stride, pad, single_cls,
  File "/homeb/tangwuguo/miniconda3/envs/cv/lib/python3.8/site-packages/ultralytics/yolo/data/base.py", line 69, in __init__
    self.labels = self.get_labels()
  File "/homeb/tangwuguo/miniconda3/envs/cv/lib/python3.8/site-packages/ultralytics/yolo/data/dataset.py", line 160, in get_labels
    len_cls, len_boxes, len_segments = (sum(x) for x in zip(*lengths))
ValueError: not enough values to unpack (expected 3, got 0)
Sentry is attempting to send 2 pending error messages
Waiting up to 2 seconds
Press Ctrl-C to quit

I searched some solutions onlines. It is said the .yaml config file maybe wrong or the .txt label file without normalization.

So I checked these files. I found the .cahed file shows in the /labels dir. So I can draw that the .yaml is right? And the label file is also normalized. Would you please tell how to solve it, thank you

enter image description here

enter image description here

0

There are 0 answers