質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

YOLO

YOLOとは、画像検出および認識用ニューラルネットワークです。CベースのDarknetというフレームワークを用いて、画像や動画からオブジェクトを検出。リアルタイムでそれが何になるのかを認識し、分類することができます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

0回答

57閲覧

Jupiter notebookでのValueError: not enough values to unpack (expected 3, got 0)というエラー

lil_00

総合スコア0

Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

YOLO

YOLOとは、画像検出および認識用ニューラルネットワークです。CベースのDarknetというフレームワークを用いて、画像や動画からオブジェクトを検出。リアルタイムでそれが何になるのかを認識し、分類することができます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2024/11/20 06:27

実現したいこと

jupyter notebookでpythonを用いて、自作のデータセットをYOLOv8を使用して画像学習させたい

発生している問題・分からないこと

from ultralytics import YOLO
model = YOLO("yolov8n.pt")
model.train(data="datasets.yaml", epochs=5, batch=8, workers=4, degrees=45.0)
というコードを実行したら下記のエラーが出てきた

エラーメッセージ

error

1ValueError Traceback (most recent call last) 2Cell In[1], line 23 3 21 from ultralytics import YOLO 4 22 model = YOLO("yolov8n.pt") 5---> 23 model.train(data="datasets.yaml", epochs=5, batch=8, workers=4, degrees=45.0) 6 7File ~\anaconda3\envs\Aidemy\Lib\site-packages\ultralytics\engine\model.py:802, in Model.train(self, trainer, **kwargs) 8 799 self.model = self.trainer.model 9 801 self.trainer.hub_session = self.session # attach optional HUB session 10--> 802 self.trainer.train() 11 803 # Update model and cfg after training 12 804 if RANK in {-1, 0}: 13 14File ~\anaconda3\envs\Aidemy\Lib\site-packages\ultralytics\engine\trainer.py:207, in BaseTrainer.train(self) 15 204 ddp_cleanup(self, str(file)) 16 206 else: 17--> 207 self._do_train(world_size) 18 19File ~\anaconda3\envs\Aidemy\Lib\site-packages\ultralytics\engine\trainer.py:327, in BaseTrainer._do_train(self, world_size) 20 325 if world_size > 1: 21 326 self._setup_ddp(world_size) 22--> 327 self._setup_train(world_size) 23 329 nb = len(self.train_loader) # number of batches 24 330 nw = max(round(self.args.warmup_epochs * nb), 100) if self.args.warmup_epochs > 0 else -1 # warmup iterations 25 26File ~\anaconda3\envs\Aidemy\Lib\site-packages\ultralytics\engine\trainer.py:291, in BaseTrainer._setup_train(self, world_size) 27 289 # Dataloaders 28 290 batch_size = self.batch_size // max(world_size, 1) 29--> 291 self.train_loader = self.get_dataloader(self.trainset, batch_size=batch_size, rank=LOCAL_RANK, mode="train") 30 292 if RANK in {-1, 0}: 31 293 # Note: When training DOTA dataset, double batch size could get OOM on images with >2000 objects. 32 294 self.test_loader = self.get_dataloader( 33 295 self.testset, batch_size=batch_size if self.args.task == "obb" else batch_size * 2, rank=-1, mode="val" 34 296 ) 35 36File ~\anaconda3\envs\Aidemy\Lib\site-packages\ultralytics\models\yolo\detect\train.py:49, in DetectionTrainer.get_dataloader(self, dataset_path, batch_size, rank, mode) 37 47 assert mode in {"train", "val"}, f"Mode must be 'train' or 'val', not {mode}." 38 48 with torch_distributed_zero_first(rank): # init dataset *.cache only once if DDP 39---> 49 dataset = self.build_dataset(dataset_path, mode, batch_size) 40 50 shuffle = mode == "train" 41 51 if getattr(dataset, "rect", False) and shuffle: 42 43File ~\anaconda3\envs\Aidemy\Lib\site-packages\ultralytics\models\yolo\detect\train.py:43, in DetectionTrainer.build_dataset(self, img_path, mode, batch) 44 34 """ 45 35 Build YOLO Dataset. 46 36 47 (...) 48 40 batch (int, optional): Size of batches, this is for `rect`. Defaults to None. 49 41 """ 50 42 gs = max(int(de_parallel(self.model).stride.max() if self.model else 0), 32) 51---> 43 return build_yolo_dataset(self.args, img_path, batch, self.data, mode=mode, rect=mode == "val", stride=gs) 52 53File ~\anaconda3\envs\Aidemy\Lib\site-packages\ultralytics\data\build.py:87, in build_yolo_dataset(cfg, img_path, batch, data, mode, rect, stride, multi_modal) 54 85 """Build YOLO Dataset.""" 55 86 dataset = YOLOMultiModalDataset if multi_modal else YOLODataset 56---> 87 return dataset( 57 88 img_path=img_path, 58 89 imgsz=cfg.imgsz, 59 90 batch_size=batch, 60 91 augment=mode == "train", # augmentation 61 92 hyp=cfg, # TODO: probably add a get_hyps_from_cfg function 62 93 rect=cfg.rect or rect, # rectangular batches 63 94 cache=cfg.cache or None, 64 95 single_cls=cfg.single_cls or False, 65 96 stride=int(stride), 66 97 pad=0.0 if mode == "train" else 0.5, 67 98 prefix=colorstr(f"{mode}: "), 68 99 task=cfg.task, 69 100 classes=cfg.classes, 70 101 data=data, 71 102 fraction=cfg.fraction if mode == "train" else 1.0, 72 103 ) 73 74File ~\anaconda3\envs\Aidemy\Lib\site-packages\ultralytics\data\dataset.py:64, in YOLODataset.__init__(self, data, task, *args, **kwargs) 75 62 self.data = data 76 63 assert not (self.use_segments and self.use_keypoints), "Can not use both segments and keypoints." 77---> 64 super().__init__(*args, **kwargs) 78 79File ~\anaconda3\envs\Aidemy\Lib\site-packages\ultralytics\data\base.py:74, in BaseDataset.__init__(self, img_path, imgsz, cache, augment, hyp, prefix, rect, batch_size, stride, pad, single_cls, classes, fraction) 80 72 self.fraction = fraction 81 73 self.im_files = self.get_img_files(self.img_path) 82---> 74 self.labels = self.get_labels() 83 75 self.update_labels(include_class=classes) # single_cls and include_class 84 76 self.ni = len(self.labels) # number of images 85 86File ~\anaconda3\envs\Aidemy\Lib\site-packages\ultralytics\data\dataset.py:161, in YOLODataset.get_labels(self) 87 159 # Check if the dataset is all boxes or all segments 88 160 lengths = ((len(lb["cls"]), len(lb["bboxes"]), len(lb["segments"])) for lb in labels) 89--> 161 len_cls, len_boxes, len_segments = (sum(x) for x in zip(*lengths)) 90 162 if len_segments and len_boxes != len_segments: 91 163 LOGGER.warning( 92 164 f"WARNING ⚠️ Box and segment counts should be equal, but got len(segments) = {len_segments}, " 93 165 f"len(boxes) = {len_boxes}. To resolve this only boxes will be used and all segments will be removed. " 94 166 "To avoid this please supply either a detect or segment dataset, not a detect-segment mixed dataset." 95 167 ) 96ValueError: not enough values to unpack (expected 3, got 0)

該当のソースコード

python

1from ultralytics import YOLO 2model = YOLO("yolov8n.pt") 3model.train(data="datasets.yaml", epochs=5, batch=8, workers=4, degrees=45.0)

yamlファイル

1# Path 2path: ../datasets # dataset root directory 3train: images/train # train images (relative to 'path') 4val: images/val # val images (relative to 'path') 5# test: images/test # optional, if you have test data 6 7# Class names 8names: 9 0: manchester city 10 1: manchester united 11 2: real madrid

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

yamlファイルでネームリストを
nc : 3
names: ['manchester city','manchester united','real madrid']
にして実行してみたが同じエラーが出た

補足

特になし

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

meg_

2024/11/20 13:01

アノテーションはどのように作業されましたか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問