This commit is contained in:
Lukáš Trkan
2026-04-21 01:14:25 +02:00
parent 3f072b862e
commit d7620979ee
5124 changed files with 868 additions and 110 deletions

View File

@@ -14,9 +14,23 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 1,
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager, possibly rendering your system unusable.It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv. Use the --root-user-action option if you know what you are doing and want to suppress this warning.\u001b[0m\u001b[33m\n",
"\u001b[0m\n",
"\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m24.2\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m26.0.1\u001b[0m\n",
"\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpython -m pip install --upgrade pip\u001b[0m\n",
"PyTorch: 2.4.1+cu124\n",
"CUDA dostupná: True\n",
"GPU: NVIDIA GeForce RTX 4090\n"
]
}
],
"source": [
"!pip install ultralytics --quiet\n",
"\n",
@@ -31,9 +45,22 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 2,
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Creating new Ultralytics Settings v0.0.6 file ✅ \n",
"View Ultralytics Settings with 'yolo settings' or at '/root/.config/Ultralytics/settings.json'\n",
"Update Settings with 'yolo settings key=value', i.e. 'yolo settings runs_dir=path/to/dir'. For help see https://docs.ultralytics.com/quickstart/#ultralytics-settings.\n",
"Downloading https://github.com/ultralytics/assets/releases/download/v8.4.0/yolov8s.pt to 'yolov8s.pt': 100% ━━━━━━━━━━━━ 21.5MB 119.1MB/s 0.2s\n",
"YOLOv8s summary: 129 layers, 11,166,560 parameters, 0 gradients, 28.8 GFLOPs\n",
"Model načten: (129, 11166560, 0, 28.816844800000002)\n"
]
}
],
"source": [
"from ultralytics import YOLO\n",
"from pathlib import Path\n",
@@ -49,9 +76,334 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 3,
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Trénink na: cuda\n",
"Ultralytics 8.4.40 🚀 Python-3.11.10 torch-2.4.1+cu124 CUDA:0 (NVIDIA GeForce RTX 4090, 24210MiB)\n",
"\u001b[34m\u001b[1mengine/trainer: \u001b[0magnostic_nms=False, amp=True, angle=1.0, augment=False, auto_augment=randaugment, batch=16, bgr=0.0, box=7.5, cache=False, cfg=None, classes=None, close_mosaic=10, cls=0.5, cls_pw=0.0, compile=False, conf=None, copy_paste=0.0, copy_paste_mode=flip, cos_lr=False, cutmix=0.0, data=data/yolo_visdrone/dataset.yaml, degrees=15.0, deterministic=True, device=0, dfl=1.5, dnn=False, dropout=0.0, dynamic=False, embed=None, end2end=None, epochs=50, erasing=0.4, exist_ok=False, fliplr=0.5, flipud=0.5, format=torchscript, fraction=1.0, freeze=None, half=False, hsv_h=0.015, hsv_s=0.7, hsv_v=0.4, imgsz=640, int8=False, iou=0.7, keras=False, kobj=1.0, line_width=None, lr0=0.01, lrf=0.01, mask_ratio=4, max_det=300, mixup=0.0, mode=train, model=yolov8s.pt, momentum=0.937, mosaic=1.0, multi_scale=0.0, name=visdrone_vehicles, nbs=64, nms=False, opset=None, optimize=False, optimizer=auto, overlap_mask=True, patience=10, perspective=0.0, plots=True, pose=12.0, pretrained=True, profile=False, project=runs/train, rect=False, resume=False, retina_masks=False, rle=1.0, save=True, save_conf=False, save_crop=False, save_dir=/workspace/projekt/runs/detect/runs/train/visdrone_vehicles, save_frames=False, save_json=False, save_period=10, save_txt=False, scale=0.5, seed=0, shear=0.0, show=False, show_boxes=True, show_conf=True, show_labels=True, simplify=True, single_cls=False, source=None, split=val, stream_buffer=False, task=detect, time=None, tracker=botsort.yaml, translate=0.1, val=True, verbose=True, vid_stride=1, visualize=False, warmup_bias_lr=0.1, warmup_epochs=3.0, warmup_momentum=0.8, weight_decay=0.0005, workers=8, workspace=None\n",
"Downloading https://ultralytics.com/assets/Arial.ttf to '/root/.config/Ultralytics/Arial.ttf': 100% ━━━━━━━━━━━━ 755.1KB 19.0MB/s 0.0s\n",
"Overriding model.yaml nc=80 with nc=4\n",
"\n",
" from n params module arguments \n",
" 0 -1 1 928 ultralytics.nn.modules.conv.Conv [3, 32, 3, 2] \n",
" 1 -1 1 18560 ultralytics.nn.modules.conv.Conv [32, 64, 3, 2] \n",
" 2 -1 1 29056 ultralytics.nn.modules.block.C2f [64, 64, 1, True] \n",
" 3 -1 1 73984 ultralytics.nn.modules.conv.Conv [64, 128, 3, 2] \n",
" 4 -1 2 197632 ultralytics.nn.modules.block.C2f [128, 128, 2, True] \n",
" 5 -1 1 295424 ultralytics.nn.modules.conv.Conv [128, 256, 3, 2] \n",
" 6 -1 2 788480 ultralytics.nn.modules.block.C2f [256, 256, 2, True] \n",
" 7 -1 1 1180672 ultralytics.nn.modules.conv.Conv [256, 512, 3, 2] \n",
" 8 -1 1 1838080 ultralytics.nn.modules.block.C2f [512, 512, 1, True] \n",
" 9 -1 1 656896 ultralytics.nn.modules.block.SPPF [512, 512, 5] \n",
" 10 -1 1 0 torch.nn.modules.upsampling.Upsample [None, 2, 'nearest'] \n",
" 11 [-1, 6] 1 0 ultralytics.nn.modules.conv.Concat [1] \n",
" 12 -1 1 591360 ultralytics.nn.modules.block.C2f [768, 256, 1] \n",
" 13 -1 1 0 torch.nn.modules.upsampling.Upsample [None, 2, 'nearest'] \n",
" 14 [-1, 4] 1 0 ultralytics.nn.modules.conv.Concat [1] \n",
" 15 -1 1 148224 ultralytics.nn.modules.block.C2f [384, 128, 1] \n",
" 16 -1 1 147712 ultralytics.nn.modules.conv.Conv [128, 128, 3, 2] \n",
" 17 [-1, 12] 1 0 ultralytics.nn.modules.conv.Concat [1] \n",
" 18 -1 1 493056 ultralytics.nn.modules.block.C2f [384, 256, 1] \n",
" 19 -1 1 590336 ultralytics.nn.modules.conv.Conv [256, 256, 3, 2] \n",
" 20 [-1, 9] 1 0 ultralytics.nn.modules.conv.Concat [1] \n",
" 21 -1 1 1969152 ultralytics.nn.modules.block.C2f [768, 512, 1] \n",
" 22 [15, 18, 21] 1 2117596 ultralytics.nn.modules.head.Detect [4, 16, None, [128, 256, 512]]\n",
"Model summary: 130 layers, 11,137,148 parameters, 11,137,132 gradients, 28.7 GFLOPs\n",
"\n",
"Transferred 349/355 items from pretrained weights\n",
"Freezing layer 'model.22.dfl.conv.weight'\n",
"\u001b[34m\u001b[1mAMP: \u001b[0mrunning Automatic Mixed Precision (AMP) checks...\n",
"Downloading https://github.com/ultralytics/assets/releases/download/v8.4.0/yolo26n.pt to 'yolo26n.pt': 100% ━━━━━━━━━━━━ 5.3MB 66.2MB/s 0.1s\n",
"\u001b[34m\u001b[1mAMP: \u001b[0mchecks passed ✅\n",
"\u001b[34m\u001b[1mtrain: \u001b[0mFast image access ✅ (ping: 0.2±0.1 ms, read: 78.2±41.0 MB/s, size: 260.7 KB)\n",
"\u001b[34m\u001b[1mtrain: \u001b[0mScanning /workspace/projekt/data/yolo_visdrone/train/labels... 6471 images, 279 backgrounds, 0 corrupt: 100% ━━━━━━━━━━━━ 6471/6471 635.9it/s 10.2s\n",
"\u001b[34m\u001b[1mtrain: \u001b[0m/workspace/projekt/data/yolo_visdrone/train/images/0000140_00118_d_0000002.jpg: 1 duplicate labels removed\n",
"\u001b[34m\u001b[1mtrain: \u001b[0mNew cache created: /workspace/projekt/data/yolo_visdrone/train/labels.cache\n",
"\u001b[34m\u001b[1mval: \u001b[0mFast image access ✅ (ping: 0.2±0.0 ms, read: 56.8±15.7 MB/s, size: 142.1 KB)\n",
"\u001b[34m\u001b[1mval: \u001b[0mScanning /workspace/projekt/data/yolo_visdrone/val/labels... 548 images, 29 backgrounds, 0 corrupt: 100% ━━━━━━━━━━━━ 548/548 777.4it/s 0.7s\n",
"\u001b[34m\u001b[1mval: \u001b[0mNew cache created: /workspace/projekt/data/yolo_visdrone/val/labels.cache\n",
"\u001b[34m\u001b[1moptimizer:\u001b[0m 'optimizer=auto' found, ignoring 'lr0=0.01' and 'momentum=0.937' and determining best 'optimizer', 'lr0' and 'momentum' automatically... \n",
"\u001b[34m\u001b[1moptimizer:\u001b[0m AdamW(lr=0.00125, momentum=0.9) with parameter groups 57 weight(decay=0.0), 64 weight(decay=0.0005), 63 bias(decay=0.0)\n",
"Plotting labels to /workspace/projekt/runs/detect/runs/train/visdrone_vehicles/labels.jpg... \n",
"Image sizes 640 train, 640 val\n",
"Using 8 dataloader workers\n",
"Logging results to \u001b[1m/workspace/projekt/runs/detect/runs/train/visdrone_vehicles\u001b[0m\n",
"Starting training for 50 epochs...\n",
"\n",
" Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n",
" 1/50 6.74G 1.681 1.528 1.078 120 640: 100% ━━━━━━━━━━━━ 405/405 13.4it/s 30.3s\n",
" Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 18/18 5.7it/s 3.2s\n",
" all 548 17040 0.364 0.302 0.271 0.148\n",
"\n",
" Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n",
" 2/50 7.48G 1.561 1.225 1.018 411 640: 100% ━━━━━━━━━━━━ 405/405 14.8it/s 27.4s\n",
" Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 18/18 7.0it/s 2.6s\n",
" all 548 17040 0.479 0.293 0.301 0.178\n",
"\n",
" Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n",
" 3/50 7.5G 1.538 1.186 1.007 316 640: 100% ━━━━━━━━━━━━ 405/405 15.7it/s 25.7s\n",
" Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 18/18 5.5it/s 3.2s\n",
" all 548 17040 0.384 0.342 0.304 0.167\n",
"\n",
" Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n",
" 4/50 7.5G 1.503 1.155 0.998 229 640: 100% ━━━━━━━━━━━━ 405/405 15.7it/s 25.8s\n",
" Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 18/18 5.6it/s 3.2s\n",
" all 548 17040 0.487 0.33 0.329 0.206\n",
"\n",
" Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n",
" 5/50 7.5G 1.465 1.105 0.9862 296 640: 100% ━━━━━━━━━━━━ 405/405 15.7it/s 25.8s\n",
" Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 18/18 6.6it/s 2.7s\n",
" all 548 17040 0.489 0.348 0.345 0.198\n",
"\n",
" Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n",
" 6/50 7.5G 1.453 1.075 0.9789 307 640: 100% ━━━━━━━━━━━━ 405/405 15.5it/s 26.2s\n",
" Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 18/18 5.9it/s 3.0s\n",
" all 548 17040 0.55 0.362 0.385 0.21\n",
"\n",
" Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n",
" 7/50 7.5G 1.433 1.058 0.9745 352 640: 100% ━━━━━━━━━━━━ 405/405 15.5it/s 26.1s\n",
" Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 18/18 6.7it/s 2.7s\n",
" all 548 17040 0.526 0.367 0.385 0.238\n",
"\n",
" Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n",
" 8/50 7.5G 1.411 1.033 0.9689 130 640: 100% ━━━━━━━━━━━━ 405/405 15.8it/s 25.7s\n",
" Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 18/18 7.9it/s 2.3s\n",
" all 548 17040 0.544 0.38 0.396 0.251\n",
"\n",
" Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n",
" 9/50 7.5G 1.391 1.016 0.9621 362 640: 100% ━━━━━━━━━━━━ 405/405 15.4it/s 26.4s\n",
" Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 18/18 8.7it/s 2.1s\n",
" all 548 17040 0.533 0.391 0.408 0.257\n",
"\n",
" Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n",
" 10/50 7.5G 1.37 1 0.9538 251 640: 100% ━━━━━━━━━━━━ 405/405 15.5it/s 26.0s\n",
" Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 18/18 8.4it/s 2.2s\n",
" all 548 17040 0.56 0.366 0.383 0.239\n",
"\n",
" Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n",
" 11/50 7.5G 1.359 0.9788 0.9528 315 640: 100% ━━━━━━━━━━━━ 405/405 15.4it/s 26.3s\n",
" Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 18/18 7.2it/s 2.5s\n",
" all 548 17040 0.528 0.393 0.408 0.248\n",
"\n",
" Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n",
" 12/50 8.27G 1.349 0.9773 0.9515 194 640: 100% ━━━━━━━━━━━━ 405/405 16.2it/s 25.0s\n",
" Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 18/18 9.3it/s 1.9s\n",
" all 548 17040 0.569 0.408 0.424 0.266\n",
"\n",
" Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n",
" 13/50 8.27G 1.338 0.9568 0.9487 302 640: 100% ━━━━━━━━━━━━ 405/405 16.1it/s 25.2s\n",
" Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 18/18 7.8it/s 2.3s\n",
" all 548 17040 0.586 0.403 0.43 0.272\n",
"\n",
" Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n",
" 14/50 8.27G 1.329 0.9541 0.9422 212 640: 100% ━━━━━━━━━━━━ 405/405 15.6it/s 25.9s\n",
" Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 18/18 7.9it/s 2.3s\n",
" all 548 17040 0.583 0.421 0.452 0.282\n",
"\n",
" Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n",
" 15/50 8.27G 1.327 0.9459 0.9386 312 640: 100% ━━━━━━━━━━━━ 405/405 15.5it/s 26.2s\n",
" Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 18/18 8.6it/s 2.1s\n",
" all 548 17040 0.592 0.424 0.453 0.289\n",
"\n",
" Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n",
" 16/50 8.27G 1.316 0.9352 0.9406 391 640: 100% ━━━━━━━━━━━━ 405/405 15.3it/s 26.4s\n",
" Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 18/18 8.6it/s 2.1s\n",
" all 548 17040 0.577 0.417 0.442 0.276\n",
"\n",
" Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n",
" 17/50 8.27G 1.302 0.9241 0.9354 289 640: 100% ━━━━━━━━━━━━ 405/405 15.9it/s 25.5s\n",
" Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 18/18 8.8it/s 2.0s\n",
" all 548 17040 0.615 0.41 0.455 0.286\n",
"\n",
" Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n",
" 18/50 8.27G 1.296 0.9194 0.9328 343 640: 100% ━━━━━━━━━━━━ 405/405 15.4it/s 26.3s\n",
" Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 18/18 8.9it/s 2.0s\n",
" all 548 17040 0.613 0.395 0.436 0.28\n",
"\n",
" Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n",
" 19/50 8.27G 1.285 0.9064 0.9314 176 640: 100% ━━━━━━━━━━━━ 405/405 15.4it/s 26.3s\n",
" Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 18/18 7.7it/s 2.3s\n",
" all 548 17040 0.596 0.427 0.454 0.287\n",
"\n",
" Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n",
" 20/50 8.27G 1.272 0.8993 0.9273 419 640: 100% ━━━━━━━━━━━━ 405/405 15.7it/s 25.8s\n",
" Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 18/18 8.5it/s 2.1s\n",
" all 548 17040 0.603 0.414 0.452 0.294\n",
"\n",
" Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n",
" 21/50 8.27G 1.266 0.8915 0.9256 368 640: 100% ━━━━━━━━━━━━ 405/405 15.8it/s 25.7s\n",
" Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 18/18 7.4it/s 2.4s\n",
" all 548 17040 0.635 0.433 0.479 0.303\n",
"\n",
" Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n",
" 22/50 8.27G 1.252 0.8861 0.9235 399 640: 100% ━━━━━━━━━━━━ 405/405 15.5it/s 26.1s\n",
" Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 18/18 8.6it/s 2.1s\n",
" all 548 17040 0.639 0.433 0.472 0.299\n",
"\n",
" Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n",
" 23/50 8.27G 1.249 0.8802 0.9229 323 640: 100% ━━━━━━━━━━━━ 405/405 15.7it/s 25.8s\n",
" Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 18/18 8.6it/s 2.1s\n",
" all 548 17040 0.616 0.427 0.467 0.305\n",
"\n",
" Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n",
" 24/50 8.27G 1.232 0.8676 0.9185 515 640: 100% ━━━━━━━━━━━━ 405/405 15.4it/s 26.3s\n",
" Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 18/18 7.9it/s 2.3s\n",
" all 548 17040 0.64 0.42 0.471 0.308\n",
"\n",
" Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n",
" 25/50 8.27G 1.23 0.8628 0.917 293 640: 100% ━━━━━━━━━━━━ 405/405 15.7it/s 25.8s\n",
" Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 18/18 8.4it/s 2.1s\n",
" all 548 17040 0.592 0.45 0.478 0.31\n",
"\n",
" Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n",
" 26/50 9.3G 1.231 0.8637 0.9194 339 640: 100% ━━━━━━━━━━━━ 405/405 15.6it/s 25.9s\n",
" Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 18/18 8.2it/s 2.2s\n",
" all 548 17040 0.635 0.418 0.467 0.305\n",
"\n",
" Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n",
" 27/50 9.3G 1.217 0.8563 0.9122 342 640: 100% ━━━━━━━━━━━━ 405/405 15.2it/s 26.7s\n",
" Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 18/18 8.0it/s 2.2s\n",
" all 548 17040 0.643 0.436 0.484 0.314\n",
"\n",
" Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n",
" 28/50 9.3G 1.213 0.8475 0.9091 387 640: 100% ━━━━━━━━━━━━ 405/405 15.6it/s 25.9s\n",
" Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 18/18 7.8it/s 2.3s\n",
" all 548 17040 0.622 0.449 0.486 0.31\n",
"\n",
" Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n",
" 29/50 9.3G 1.21 0.8415 0.9099 393 640: 100% ━━━━━━━━━━━━ 405/405 15.5it/s 26.1s\n",
" Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 18/18 8.3it/s 2.2s\n",
" all 548 17040 0.604 0.452 0.488 0.32\n",
"\n",
" Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n",
" 30/50 9.3G 1.203 0.8385 0.9082 296 640: 100% ━━━━━━━━━━━━ 405/405 15.6it/s 26.0s\n",
" Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 18/18 8.8it/s 2.0s\n",
" all 548 17040 0.604 0.452 0.487 0.311\n",
"\n",
" Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n",
" 31/50 9.3G 1.186 0.8276 0.9057 187 640: 100% ━━━━━━━━━━━━ 405/405 15.5it/s 26.1s\n",
" Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 18/18 9.7it/s 1.9s\n",
" all 548 17040 0.607 0.46 0.495 0.322\n",
"\n",
" Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n",
" 32/50 9.3G 1.194 0.8245 0.9052 312 640: 100% ━━━━━━━━━━━━ 405/405 15.5it/s 26.2s\n",
" Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 18/18 7.9it/s 2.3s\n",
" all 548 17040 0.652 0.451 0.502 0.327\n",
"\n",
" Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n",
" 33/50 9.3G 1.185 0.8258 0.9068 385 640: 100% ━━━━━━━━━━━━ 405/405 15.7it/s 25.9s\n",
" Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 18/18 8.6it/s 2.1s\n",
" all 548 17040 0.603 0.474 0.499 0.322\n",
"\n",
" Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n",
" 34/50 9.3G 1.181 0.8198 0.9028 300 640: 100% ━━━━━━━━━━━━ 405/405 15.4it/s 26.2s\n",
" Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 18/18 8.9it/s 2.0s\n",
" all 548 17040 0.651 0.451 0.5 0.326\n",
"\n",
" Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n",
" 35/50 9.3G 1.175 0.8094 0.9012 312 640: 100% ━━━━━━━━━━━━ 405/405 15.3it/s 26.5s\n",
" Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 18/18 10.6it/s 1.7s\n",
" all 548 17040 0.622 0.455 0.494 0.326\n",
"\n",
" Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n",
" 36/50 9.3G 1.167 0.8011 0.9009 399 640: 100% ━━━━━━━━━━━━ 405/405 15.8it/s 25.6s\n",
" Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 18/18 9.7it/s 1.8s\n",
" all 548 17040 0.634 0.452 0.499 0.33\n",
"\n",
" Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n",
" 37/50 9.3G 1.161 0.7976 0.9003 318 640: 100% ━━━━━━━━━━━━ 405/405 15.6it/s 26.0s\n",
" Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 18/18 8.9it/s 2.0s\n",
" all 548 17040 0.625 0.475 0.509 0.335\n",
"\n",
" Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n",
" 38/50 9.3G 1.164 0.7973 0.8987 280 640: 100% ━━━━━━━━━━━━ 405/405 15.4it/s 26.4s\n",
" Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 18/18 9.5it/s 1.9s\n",
" all 548 17040 0.625 0.482 0.517 0.34\n",
"\n",
" Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n",
" 39/50 9.3G 1.155 0.7871 0.8957 475 640: 100% ━━━━━━━━━━━━ 405/405 15.6it/s 25.9s\n",
" Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 18/18 9.2it/s 2.0s\n",
" all 548 17040 0.64 0.466 0.512 0.334\n",
"\n",
" Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n",
" 40/50 9.3G 1.151 0.7872 0.8961 274 640: 100% ━━━━━━━━━━━━ 405/405 15.7it/s 25.8s\n",
" Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 18/18 9.5it/s 1.9s\n",
" all 548 17040 0.644 0.471 0.51 0.334\n",
"Closing dataloader mosaic\n",
"\n",
" Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n",
" 41/50 9.3G 1.115 0.7576 0.8965 134 640: 100% ━━━━━━━━━━━━ 405/405 15.6it/s 26.0s\n",
" Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 18/18 9.3it/s 1.9s\n",
" all 548 17040 0.645 0.466 0.505 0.33\n",
"\n",
" Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n",
" 42/50 9.3G 1.105 0.7458 0.895 193 640: 100% ━━━━━━━━━━━━ 405/405 15.8it/s 25.7s\n",
" Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 18/18 8.9it/s 2.0s\n",
" all 548 17040 0.659 0.451 0.51 0.334\n",
"\n",
" Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n",
" 43/50 9.3G 1.099 0.7388 0.8945 119 640: 100% ━━━━━━━━━━━━ 405/405 16.1it/s 25.2s\n",
" Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 18/18 9.0it/s 2.0s\n",
" all 548 17040 0.589 0.486 0.505 0.335\n",
"\n",
" Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n",
" 44/50 9.3G 1.091 0.7312 0.8914 272 640: 100% ━━━━━━━━━━━━ 405/405 15.5it/s 26.1s\n",
" Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 18/18 9.3it/s 1.9s\n",
" all 548 17040 0.619 0.476 0.504 0.335\n",
"\n",
" Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n",
" 45/50 9.3G 1.086 0.7252 0.8911 180 640: 100% ━━━━━━━━━━━━ 405/405 16.1it/s 25.1s\n",
" Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 18/18 9.7it/s 1.9s\n",
" all 548 17040 0.638 0.468 0.506 0.338\n",
"\n",
" Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n",
" 46/50 9.3G 1.084 0.7237 0.8881 140 640: 100% ━━━━━━━━━━━━ 405/405 16.1it/s 25.1s\n",
" Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 18/18 9.6it/s 1.9s\n",
" all 548 17040 0.669 0.453 0.51 0.336\n",
"\n",
" Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n",
" 47/50 9.3G 1.078 0.7178 0.8877 187 640: 100% ━━━━━━━━━━━━ 405/405 16.2it/s 25.0s\n",
" Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 18/18 9.7it/s 1.8s\n",
" all 548 17040 0.663 0.458 0.512 0.339\n",
"\n",
" Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n",
" 48/50 9.3G 1.072 0.7115 0.8862 265 640: 100% ━━━━━━━━━━━━ 405/405 15.9it/s 25.4s\n",
" Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 18/18 9.6it/s 1.9s\n",
" all 548 17040 0.646 0.465 0.512 0.341\n",
"\n",
" Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n",
" 49/50 9.3G 1.073 0.7076 0.8848 238 640: 100% ━━━━━━━━━━━━ 405/405 16.0it/s 25.3s\n",
" Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 18/18 9.6it/s 1.9s\n",
" all 548 17040 0.632 0.468 0.515 0.343\n",
"\n",
" Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n",
" 50/50 9.3G 1.062 0.7007 0.8852 221 640: 100% ━━━━━━━━━━━━ 405/405 16.3it/s 24.9s\n",
" Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 18/18 9.7it/s 1.8s\n",
" all 548 17040 0.649 0.463 0.514 0.343\n",
"\n",
"50 epochs completed in 0.402 hours.\n",
"Optimizer stripped from /workspace/projekt/runs/detect/runs/train/visdrone_vehicles/weights/last.pt, 22.5MB\n",
"Optimizer stripped from /workspace/projekt/runs/detect/runs/train/visdrone_vehicles/weights/best.pt, 22.5MB\n",
"\n",
"Validating /workspace/projekt/runs/detect/runs/train/visdrone_vehicles/weights/best.pt...\n",
"Ultralytics 8.4.40 🚀 Python-3.11.10 torch-2.4.1+cu124 CUDA:0 (NVIDIA GeForce RTX 4090, 24210MiB)\n",
"Model summary (fused): 73 layers, 11,127,132 parameters, 0 gradients, 28.4 GFLOPs\n",
" Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 18/18 6.4it/s 2.8s\n",
" all 548 17040 0.648 0.463 0.514 0.343\n",
" car 515 14064 0.752 0.751 0.772 0.51\n",
" van 421 1975 0.6 0.368 0.425 0.285\n",
" truck 266 750 0.579 0.3 0.342 0.223\n",
" bus 131 251 0.661 0.435 0.515 0.353\n",
"Speed: 0.0ms preprocess, 0.3ms inference, 0.0ms loss, 1.0ms postprocess per image\n",
"Results saved to \u001b[1m/workspace/projekt/runs/detect/runs/train/visdrone_vehicles\u001b[0m\n"
]
}
],
"source": [
"import torch\n",
"\n",
@@ -89,7 +441,7 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
@@ -114,12 +466,38 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 12,
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Ultralytics 8.4.40 🚀 Python-3.11.10 torch-2.4.1+cu124 CUDA:0 (NVIDIA GeForce RTX 4090, 24210MiB)\n",
"Model summary (fused): 73 layers, 11,127,132 parameters, 0 gradients, 28.4 GFLOPs\n",
"\u001b[34m\u001b[1mval: \u001b[0mFast image access ✅ (ping: 0.2±0.0 ms, read: 137.7±69.7 MB/s, size: 126.7 KB)\n",
"\n",
" Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 35/35 10.5it/s 3.3s\n",
" all 548 17040 0.651 0.465 0.515 0.344\n",
" car 515 14064 0.753 0.751 0.774 0.511\n",
" van 421 1975 0.604 0.369 0.426 0.286\n",
" truck 266 750 0.578 0.3 0.342 0.224\n",
" bus 131 251 0.667 0.44 0.518 0.354\n",
"Speed: 0.6ms preprocess, 1.3ms inference, 0.0ms loss, 0.9ms postprocess per image\n",
"Results saved to \u001b[1m/workspace/projekt/runs/detect/val\u001b[0m\n",
"\n",
"mAP50: 0.5151\n",
"mAP50-95: 0.3438\n",
" AP50[car]: 0.7742\n",
" AP50[van]: 0.4262\n",
" AP50[truck]: 0.3418\n",
" AP50[bus]: 0.5181\n"
]
}
],
"source": [
"# Validace nejlepšího modelu\n",
"best_weights = Path(\"runs/train/visdrone_vehicles/weights/best.pt\")\n",
"best_weights = Path(\"runs/detect/runs/train/visdrone_vehicles/weights/best.pt\")\n",
"assert best_weights.exists(), \"Trénink ještě neproběhl nebo selhal\"\n",
"\n",
"model_best = YOLO(str(best_weights))\n",
@@ -134,9 +512,18 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 13,
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Nejlepší model uložen v: runs/detect/runs/train/visdrone_vehicles/weights/best.pt\n",
"Konfigurace zapsána do: model_config.json\n"
]
}
],
"source": [
"# Uložení cesty k nejlepšímu modelu pro další notebooky\n",
"import json\n",
@@ -148,17 +535,32 @@
"print(f\"Nejlepší model uložen v: {best_weights}\")\n",
"print(f\"Konfigurace zapsána do: model_config.json\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"version": "3.10.0"
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.10"
}
},
"nbformat": 4,