λ€μμ μ¬μ©νμ¬ YOLOv8 μ€ν μΆμ λ° μκ°ν ν₯μ Weights & Biases
κ°μ κ°μ²΄ κ°μ§ λͺ¨λΈμ Ultralytics YOLOv8 κ³Ό κ°μ κ°μ²΄ κ°μ§ λͺ¨λΈμ λ§μ μ»΄ν¨ν° λΉμ μ ν리μΌμ΄μ μ νμμ μΈ μμκ° λμμ΅λλ€. κ·Έλ¬λ μ΄λ¬ν 볡μ‘ν λͺ¨λΈμ νλ ¨, νκ°, λ°°ν¬νλ λ°μλ λͺ κ°μ§ μ΄λ €μμ΄ λ°λ¦ λλ€. μ£Όμ νλ ¨ λ©νΈλ¦μ μΆμ νκ³ , λͺ¨λΈ λ³νμ λΉκ΅νκ³ , λͺ¨λΈ λμμ λΆμνκ³ , λ¬Έμ λ₯Ό κ°μ§νλ €λ©΄ μλΉν κ³μΈ‘ λ° μ€ν κ΄λ¦¬κ° νμν©λλ€.
μ΄ κ°μ΄λμμλ μ€ν μΆμ , λͺ¨λΈ 체ν¬ν¬μΈνΈ μ§μ λ° λͺ¨λΈ μ±λ₯ μκ°νλ₯Ό κ°μ νκΈ° μν Ultralytics YOLOv8 κ³Ό Weights & Biases' ν΅ν©μ μκ°ν©λλ€. λν Weights & Biases' λνν κΈ°λ₯μ μ¬μ©νμ¬ ν΅ν© μ€μ , νλ ¨, λ―ΈμΈ μ‘°μ λ° κ²°κ³Ό μκ°νμ λν μ§μΉ¨λ ν¬ν¨λμ΄ μμ΅λλ€.
Weights & Biases
Weights & Biases λ λ¨Έμ λ¬λ μ€νμ μΆμ , μκ°ν, κ΄λ¦¬νκΈ° μν΄ μ€κ³λ μ΅μ²¨λ¨ MLOps νλ«νΌμ λλ€. μλ²½ν μ€ν μ¬νμ±μ μν νλ ¨ μ§νμ μλ λ‘κΉ , κ°μνλ λ°μ΄ν° λΆμμ μν λνν UI, λ€μν νκ²½μ λ°°ν¬ν μ μλ ν¨μ¨μ μΈ λͺ¨λΈ κ΄λ¦¬ λκ΅¬κ° νΉμ§μ λλ€.
YOLOv8 κ΅μ‘ λμ Weights & Biases
Weights & Biases μ μ¬μ©νμ¬ YOLOv8 κ΅μ‘ νλ‘μΈμ€μ ν¨μ¨μ±κ³Ό μλνλ₯Ό λμ ν μ μμ΅λλ€.
μ€μΉ
νμν ν¨ν€μ§λ₯Ό μ€μΉνλ €λ©΄ μ€νν©λλ€:
μ€μΉ
μ€μΉ κ³Όμ κ³Ό κ΄λ ¨λ μμΈν μ§μΉ¨κ³Ό λͺ¨λ² μ¬λ‘λ YOLOv8 μ€μΉ κ°μ΄λλ₯Ό νμΈνμΈμ. YOLOv8 μ νμν ν¨ν€μ§λ₯Ό μ€μΉνλ λμ λ¬Έμ κ° λ°μνλ©΄ μΌλ°μ μΈ λ¬Έμ κ°μ΄λλ₯Ό μ°Έμ‘°νμ¬ ν΄κ²° λ°©λ²κ³Ό νμ νμΈνμΈμ.
κ΅¬μ± Weights & Biases
νμν ν¨ν€μ§λ₯Ό μ€μΉν ν λ€μ λ¨κ³λ Weights & Biases νκ²½μ μ€μ νλ κ²μ λλ€. μ¬κΈ°μλ Weights & Biases κ³μ μ μμ±νκ³ κ°λ° νκ²½κ³Ό W&B νλ«νΌ κ°μ μνν μ°κ²°μ μν΄ νμν API ν€λ₯Ό μ»λ κ²μ΄ ν¬ν¨λ©λλ€.
λ¨Όμ μν¬μ€νμ΄μ€μμ Weights & Biases νκ²½μ μ΄κΈ°νν©λλ€. λ€μ λͺ λ Ήμ μ€ννκ³ λ©μμ§μ μλ΄μ λ°λΌ μ΄κΈ°νν μ μμ΅λλ€.
Weights & Biases μΈμ¦ νμ΄μ§λ‘ μ΄λνμ¬ API ν€λ₯Ό μμ±νκ³ κ²μν©λλ€. μ΄ ν€λ₯Ό μ¬μ©νμ¬ W&Bλ‘ νκ²½μ μΈμ¦ν©λλ€.
μ¬μ©λ²: κ΅μ‘: YOLOv8 Weights & Biases
Weights & Biases μ μ¬μ©νμ¬ YOLOv8 λͺ¨λΈ κ΅μ‘μ λν μ¬μ© μ§μΉ¨μ μ΄ν΄λ³΄κΈ° μ μ Ultralytics μμ μ 곡νλ λ€μν YOLOv8 λͺ¨λΈμ νμΈνμΈμ. μ΄λ κ² νλ©΄ νλ‘μ νΈ μꡬ μ¬νμ κ°μ₯ μ ν©ν λͺ¨λΈμ μ ννλ λ° λμμ΄ λ©λλ€.
μ¬μ©λ²: κ΅μ‘: YOLOv8 Weights & Biases
import wandb
from ultralytics import YOLO
from wandb.integration.ultralytics import add_wandb_callback
# Step 1: Initialize a Weights & Biases run
wandb.init(project="ultralytics", job_type="training")
# Step 2: Define the YOLOv8 Model and Dataset
model_name = "yolov8n"
dataset_name = "coco8.yaml"
model = YOLO(f"{model_name}.pt")
# Step 3: Add W&B Callback for Ultralytics
add_wandb_callback(model, enable_model_checkpointing=True)
# Step 4: Train and Fine-Tune the Model
model.train(project="ultralytics", data=dataset_name, epochs=5, imgsz=640)
# Step 5: Validate the Model
model.val()
# Step 6: Perform Inference and Log Results
model(["path/to/image1", "path/to/image2"])
# Step 7: Finalize the W&B Run
wandb.finish()
κ°λ Ή μ΄ν΄
μμ μ¬μ© μ½λ μ€λν«μ νμλ λ¨κ³λ₯Ό μ΄ν΄ν΄ λ³΄κ² μ΅λλ€.
-
1λ¨κ³: Weights & Biases μ€νμ μ΄κΈ°νν©λλ€: νλ‘μ νΈ μ΄λ¦κ³Ό μμ μ νμ μ§μ νμ¬ Weights & Biases μ€νμ μ΄κΈ°ννμ¬ μμν©λλ€. μ΄ μ€νμ λͺ¨λΈμ νμ΅ λ° μ ν¨μ± κ²μ¬ νλ‘μΈμ€λ₯Ό μΆμ νκ³ κ΄λ¦¬ν©λλ€.
-
2λ¨κ³: YOLOv8 λͺ¨λΈ λ° λ°μ΄ν° μ§ν©μ μ μν©λλ€: μ¬μ©νλ €λ λͺ¨λΈ λ³νκ³Ό λ°μ΄ν° μ§ν©μ μ§μ ν©λλ€. κ·Έλ¬λ©΄ μ§μ λ λͺ¨λΈ νμΌλ‘ YOLO λͺ¨λΈμ΄ μ΄κΈ°νλ©λλ€.
-
3λ¨κ³: Ultralytics μ λν Weights & Biases μ½λ°±μ μΆκ°ν©λλ€: μ΄ λ¨κ³λ νΈλ μ΄λ λ©νΈλ¦κ³Ό μ ν¨μ± κ²μ¬ κ²°κ³Όλ₯Ό Weights & Biases μ μλμΌλ‘ κΈ°λ‘νμ¬ λͺ¨λΈμ μ±λ₯μ μμΈν λ³Ό μ μλλ‘ νκΈ° λλ¬Έμ λ§€μ° μ€μν©λλ€.
-
4λ¨κ³: λͺ¨λΈ νλ ¨ λ° λ―ΈμΈ μ‘°μ νκΈ°: μ§μ λ λ°μ΄ν° μΈνΈ, μν¬ν¬ μ, μ΄λ―Έμ§ ν¬κΈ°λ‘ λͺ¨λΈ νμ΅μ μμν©λλ€. νλ ¨ νλ‘μΈμ€μλ κ° μν¬ν¬κ° λλ λλ§λ€ λ©νΈλ¦ λ° μμΈ‘ λ‘κΉ μ΄ ν¬ν¨λμ΄ μμ΄ λͺ¨λΈμ νμ΅ μ§ν μν©μ μ’ ν©μ μΌλ‘ νμ ν μ μμ΅λλ€.
-
5λ¨κ³: λͺ¨λΈ κ²μ¦νκΈ°: νμ΅μ΄ λλλ©΄ λͺ¨λΈμ μ ν¨μ±μ κ²μ¬ν©λλ€. μ΄ λ¨κ³λ 보μ΄μ§ μλ λ°μ΄ν°μ λν λͺ¨λΈμ μ±λ₯μ νκ°νκ³ μΌλ°ν κ°λ₯μ±μ 보μ₯νλ λ° λ§€μ° μ€μν©λλ€.
-
6λ¨κ³: μΆλ‘ μν λ° κ²°κ³Ό κΈ°λ‘νκΈ°: λͺ¨λΈμ μ§μ λ μ΄λ―Έμ§μ λν΄ μμΈ‘μ μνν©λλ€. μ΄λ¬ν μμΈ‘μ μκ°μ μ€λ²λ μ΄ λ° μΈμ¬μ΄νΈμ ν¨κ» λνν νμμ μν΄ W&B ν μ΄λΈμ μλμΌλ‘ κΈ°λ‘λ©λλ€.
-
7λ¨κ³: W&B μ€νμ λ§λ¬΄λ¦¬ν©λλ€: μ΄ λ¨κ³μμλ λ°μ΄ν° λ‘κΉ μ μ’ λ£νκ³ λͺ¨λΈ νμ΅ λ° κ²μ¦ νλ‘μΈμ€μ μ΅μ’ μνλ₯Ό W&B λμ보λμ μ μ₯ν©λλ€.
μΆλ ₯ μ΄ν΄νκΈ°
μμ μ¬μ© μ½λ μ€λν«μ μ€ννλ©΄ λ€μκ³Ό κ°μ μ£Όμ μΆλ ₯μ κΈ°λν μ μμ΅λλ€:
- κ΅μ‘ κ³Όμ μ μμμ λνλ΄λ κ³ μ IDκ° μλ μ μ€νμ μ€μ ν©λλ€.
- λ μ΄μ΄ μμ νλΌλ―Έν°λ₯Ό ν¬ν¨ν λͺ¨λΈ ꡬ쑰μ λν κ°κ²°ν μμ½μ λλ€.
- κ° νλ ¨ κΈ°κ° λμ λ°μ€ μμ€, cls μμ€, dfl μμ€, μ νλ, 리μ½, 맡 μ μ λ± μ€μν λ©νΈλ¦μ μ κΈ°μ μΌλ‘ μ λ°μ΄νΈν©λλ€.
- νμ΅μ΄ λλλ©΄ λͺ¨λΈμ μΆλ‘ μλμ μ λ°μ μΈ μ νλ μ§νλ₯Ό ν¬ν¨ν μΈλΆ μ§νκ° νμλ©λλ€.
- λ‘컬 λ‘κ·Έ νμΌ μμΉμ λν μ 보μ ν¨κ» κ΅μ‘ νλ‘μΈμ€μ λν μ¬μΈ΅ λΆμ λ° μκ°νλ₯Ό μν Weights & Biases λμ보λμ λν λ§ν¬μ λλ€.
Weights & Biases λμ보λ 보기
μ¬μ© μ½λ μ€λν«μ μ€νν ν μΆλ ₯μ μ 곡λ λ§ν¬λ₯Ό ν΅ν΄ Weights & Biases (W&B) λμ보λμ μ‘μΈμ€ν μ μμ΅λλ€. μ΄ λμ보λλ YOLOv8 μ ν΅ν΄ λͺ¨λΈμ νΈλ μ΄λ νλ‘μΈμ€λ₯Ό μ’ ν©μ μΌλ‘ λ³Ό μ μμ΅λλ€.
Weights & Biases λμ보λμ μ£Όμ κΈ°λ₯
-
μ€μκ° μ§ν μΆμ : νμ΅ μ€μ μμ€, μ νλ, μ ν¨μ± κ²μ¬ μ μμ κ°μ λ©νΈλ¦μ κ΄μ°°νμ¬ λͺ¨λΈ νλμ μν μ¦κ°μ μΈ μΈμ¬μ΄νΈλ₯Ό μ»μ μ μμ΅λλ€.
-
νμ΄νΌνλΌλ―Έν° μ΅μ ν: Weights & Biases λ νμ΅ μλ, λ°°μΉ ν¬κΈ° λ±κ³Ό κ°μ μ€μ νλΌλ―Έν°λ₯Ό λ―ΈμΈ μ‘°μ νμ¬ YOLOv8 μ μ±λ₯μ ν₯μμν€λ λ° λμμ΄ λ©λλ€.
-
λΉκ΅ λΆμ: μ΄ νλ«νΌμμλ λ€μν λͺ¨λΈ ꡬμ±μ μν₯μ νκ°νλ λ° νμμ μΈ μ¬λ¬ νλ ¨ μ€νμ λλν λΉκ΅ν μ μμ΅λλ€.
-
νλ ¨ μ§ν μν© μκ°ν: μ£Όμ λ©νΈλ¦μ κ·Έλν½ ννμ ν΅ν΄ μ¬λ¬ μλμ κ±ΈμΉ λͺ¨λΈμ μ±λ₯μ μ§κ΄μ μΌλ‘ νμ ν μ μμ΅λλ€.
-
리μμ€ λͺ¨λν°λ§: CPU, GPU, λ©λͺ¨λ¦¬ μ¬μ©λμ μΆμ νμ¬ κ΅μ‘ κ³Όμ μ ν¨μ¨μ±μ μ΅μ ννμΈμ.
-
λͺ¨λΈ μν°ν©νΈ κ΄λ¦¬: λͺ¨λΈ 체ν¬ν¬μΈνΈμ μ‘μΈμ€νκ³ κ³΅μ νμ¬ μμ½κ² λ°°ν¬νκ³ νμ ν μ μμ΅λλ€.
-
μ΄λ―Έμ§ μ€λ²λ μ΄λ‘ μΆλ‘ κ²°κ³Ό 보기: Weights & Biases μμ λνν μ€λ²λ μ΄λ₯Ό μ¬μ©νμ¬ μ΄λ―Έμ§μ λν μμΈ‘ κ²°κ³Όλ₯Ό μκ°ννμ¬ μ€μ λ°μ΄ν°μ λν λͺ¨λΈ μ±λ₯μ λͺ ννκ³ μμΈνκ² νμΈν μ μμ΅λλ€. Weights & Biases μ μ΄λ―Έμ§ μ€λ²λ μ΄ κΈ°λ₯μ λν μμΈν λ΄μ©μ μ΄ λ§ν¬λ₯Ό μ°Έμ‘°νμΈμ.
μ΄λ¬ν κΈ°λ₯μ μ¬μ©νλ©΄ YOLOv8 λͺ¨λΈμ κ΅μ‘μ ν¨κ³Όμ μΌλ‘ μΆμ , λΆμ λ° μ΅μ ννμ¬ μ΅μμ μ±λ₯κ³Ό ν¨μ¨μ±μ 보μ₯ν μ μμ΅λλ€.
μμ½
μ΄ κ°μ΄λλ Ultralytics' YOLOv8 μ Weights & Biases μ ν΅ν©μ μ΄ν΄λ³΄λ λ° λμμ΄ λ©λλ€. μ΄ ν΅ν©μ ν΅ν΄ λͺ¨λΈ νμ΅ λ° μμΈ‘ κ²°κ³Όλ₯Ό ν¨μ¨μ μΌλ‘ μΆμ νκ³ μκ°νν μ μλ κΈ°λ₯μ μ€λͺ ν©λλ€.
μ¬μ©λ²μ λν μμΈν λ΄μ©μ Weights & Biases' 곡μ λ¬Έμλ₯Ό μ°Έμ‘°νμΈμ.
λν Ultralytics ν΅ν© κ°μ΄λ νμ΄μ§μμ λ€μν ν₯λ―Έλ‘μ΄ ν΅ν© κΈ°λ₯μ λν΄ μμΈν μμ보μΈμ.