工位电脑复现yolov8 并训练 FLIR数据集
-
问题1:数据集划分标签label文件内容应为绝对路径
(yolov8) wzy@wzy-Victus-by-HP-15L-Gaming-Desktop-TG02-1xxx:~/yolo/ultralytics-main$ yolo task=detect mode=train model=yolov8n.pt data=ultralytics/yolo/data/dataset/FLIR.yaml epochs=150 batch=16
Ultralytics YOLOv8.0.176 ��� Python-3.8.18 torch-1.11.0+cu113 CUDA:0 (NVIDIA GeForce RTX 3060 Ti, 7965MiB)
WARNING ⚠️ Upgrade to torch>=2.0.0 for deterministic training.
engine/trainer: task=detect, mode=train, model=yolov8n.pt, data=ultralytics/yolo/data/dataset/FLIR.yaml, epochs=150, patience=50, batch=16, imgsz=640, save=True, save_period=-1, cache=False, device=None, workers=8, project=None, name=None, exist_ok=False, pretrained=True, optimizer=auto, verbose=True, seed=0, deterministic=True, single_cls=False, rect=False, cos_lr=False, close_mosaic=10, resume=False, amp=True, fraction=1.0, profile=False, freeze=None, overlap_mask=True, mask_ratio=4, dropout=0.0, val=True, split=val, save_json=False, save_hybrid=False, conf=None, iou=0.7, max_det=300, half=False, dnn=False, plots=True, source=None, show=False, save_txt=False, save_conf=False, save_crop=False, show_labels=True, show_conf=True, vid_stride=1, stream_buffer=False, line_width=None, visualize=False, augment=False, agnostic_nms=False, classes=None, retina_masks=False, boxes=True, format=torchscript, keras=False, optimize=False, int8=False, dynamic=False, simplify=False, opset=None, workspace=4, nms=False, lr0=0.01, lrf=0.01, momentum=0.937, weight_decay=0.0005, warmup_epochs=3.0, warmup_momentum=0.8, warmup_bias_lr=0.1, box=7.5, cls=0.5, dfl=1.5, pose=12.0, kobj=1.0, label_smoothing=0.0, nbs=64, hsv_h=0.015, hsv_s=0.7, hsv_v=0.4, degrees=0.0, translate=0.1, scale=0.5, shear=0.0, perspective=0.0, flipud=0.0, fliplr=0.5, mosaic=1.0, mixup=0.0, copy_paste=0.0, cfg=None, tracker=botsort.yaml, save_dir=runs/detect/train9
Overriding model.yaml nc=80 with nc=3
from n params module arguments
0 -1 1 464 ultralytics.nn.modules.conv.Conv [3, 16, 3, 2]
1 -1 1 4672 ultralytics.nn.modules.conv.Conv [16, 32, 3, 2]
2 -1 1 7360 ultralytics.nn.modules.block.C2f [32, 32, 1, True]
3 -1 1 18560 ultralytics.nn.modules.conv.Conv [32, 64, 3, 2]
4 -1 2 49664 ultralytics.nn.modules.block.C2f [64, 64, 2, True]
5 -1 1 73984 ultralytics.nn.modules.conv.Conv [64, 128, 3, 2]
6 -1 2 197632 ultralytics.nn.modules.block.C2f [128, 128, 2, True]
7 -1 1 295424 ultralytics.nn.modules.conv.Conv [128, 256, 3, 2]
8 -1 1 460288 ultralytics.nn.modules.block.C2f [256, 256, 1, True]
9 -1 1 164608 ultralytics.nn.modules.block.SPPF [256, 256, 5]
10 -1 1 0 torch.nn.modules.upsampling.Upsample [None, 2, 'nearest']
11 [-1, 6] 1 0 ultralytics.nn.modules.conv.Concat [1]
12 -1 1 148224 ultralytics.nn.modules.block.C2f [384, 128, 1]
13 -1 1 0 torch.nn.modules.upsampling.Upsample [None, 2, 'nearest']
14 [-1, 4] 1 0 ultralytics.nn.modules.conv.Concat [1]
15 -1 1 37248 ultralytics.nn.modules.block.C2f [192, 64, 1]
16 -1 1 36992 ultralytics.nn.modules.conv.Conv [64, 64, 3, 2]
17 [-1, 12] 1 0 ultralytics.nn.modules.conv.Concat [1]
18 -1 1 123648 ultralytics.nn.modules.block.C2f [192, 128, 1]
19 -1 1 147712 ultralytics.nn.modules.conv.Conv [128, 128, 3, 2]
20 [-1, 9] 1 0 ultralytics.nn.modules.conv.Concat [1]
21 -1 1 493056 ultralytics.nn.modules.block.C2f [384, 256, 1]
22 [15, 18, 21] 1 751897 ultralytics.nn.modules.head.Detect [3, [64, 128, 256]]
Model summary: 225 layers, 3011433 parameters, 3011417 gradients
Transferred 319/355 items from pretrained weights
Freezing layer 'model.22.dfl.conv.weight'
AMP: running Automatic Mixed Precision (AMP) checks with YOLOv8n...
AMP: checks passed ✅
Traceback (most recent call last):
File "/home/wzy/anaconda3/envs/yolov8/bin/yolo", line 8, in <module>
sys.exit(entrypoint())
File "/home/wzy/anaconda3/envs/yolov8/lib/python3.8/site-packages/ultralytics/cfg/__init__.py", line 445, in entrypoint
getattr(model, mode)(**overrides) # default args from model
File "/home/wzy/anaconda3/envs/yolov8/lib/python3.8/site-packages/ultralytics/engine/model.py", line 341, in train
self.trainer.train()
File "/home/wzy/anaconda3/envs/yolov8/lib/python3.8/site-packages/ultralytics/engine/trainer.py", line 195, in train
self._do_train(world_size)
File "/home/wzy/anaconda3/envs/yolov8/lib/python3.8/site-packages/ultralytics/engine/trainer.py", line 293, in _do_train
self._setup_train(world_size)
File "/home/wzy/anaconda3/envs/yolov8/lib/python3.8/site-packages/ultralytics/engine/trainer.py", line 258, in _setup_train
self.train_loader = self.get_dataloader(self.trainset, batch_size=batch_size, rank=RANK, mode='train')
File "/home/wzy/anaconda3/envs/yolov8/lib/python3.8/site-packages/ultralytics/models/yolo/detect/train.py", line 46, in get_dataloader
dataset = self.build_dataset(dataset_path, mode, batch_size)
File "/home/wzy/anaconda3/envs/yolov8/lib/python3.8/site-packages/ultralytics/models/yolo/detect/train.py", line 40, in build_dataset
return build_yolo_dataset(self.args, img_path, batch, self.data, mode=mode, rect=mode == 'val', stride=gs)
File "/home/wzy/anaconda3/envs/yolov8/lib/python3.8/site-packages/ultralytics/data/build.py", line 74, in build_yolo_dataset
return YOLODataset(
File "/home/wzy/anaconda3/envs/yolov8/lib/python3.8/site-packages/ultralytics/data/dataset.py", line 40, in __init__
super().__init__(*args, **kwargs)
File "/home/wzy/anaconda3/envs/yolov8/lib/python3.8/site-packages/ultralytics/data/base.py", line 72, in __init__
self.labels = self.get_labels()
File "/home/wzy/anaconda3/envs/yolov8/lib/python3.8/site-packages/ultralytics/data/dataset.py", line 97, in get_labels
cache_path = Path(self.label_files[0]).parent.with_suffix('.cache')
File "/home/wzy/anaconda3/envs/yolov8/lib/python3.8/pathlib.py", line 872, in with_suffix
raise ValueError("%r has an empty name" % (self,))
ValueError: PosixPath('.') has an empty name
解决方法:
更改划分数据集的代码如下:
-
问题2:pytorch安装
30系列安装cuda11.3 (别装11.4,没有对应版本的torch和torchvision)
cuda11.3安装pytorch命令!!!
pip install torch==1.11.0+cu113 torchvision==0.12.0+cu113 torchaudio==0.11.0 --extra-index-url https://download.pytorch.org/whl/cu113
记得在requirements.txt文件中改为指定版本名称