Meet YOLO26: next-gen vision AI.

Link to this sectionUltralytics YOLO를 활용한 모델 학습#

Ultralytics YOLO ecosystem and integrations

Link to this section소개#

딥러닝 모델 학습은 모델에 데이터를 입력하고 매개변수를 조정하여 정확한 예측을 할 수 있도록 하는 과정입니다. Ultralytics YOLO26의 학습 모드는 현대적인 하드웨어 성능을 완전히 활용하여 객체 탐지 모델을 효과적이고 효율적으로 학습할 수 있도록 설계되었습니다. 이 가이드는 YOLO26의 강력한 기능을 사용하여 모델 학습을 시작하는 데 필요한 모든 세부 정보를 다룹니다.



Watch: How to Train a YOLO model on Your Custom Dataset in Google Colab.

Link to this section학습에 Ultralytics YOLO를 선택해야 하는 이유는 무엇입니까?#

YOLO26의 학습 모드를 선택해야 하는 몇 가지 강력한 이유는 다음과 같습니다:

  • 효율성: 단일 GPU 설정이든 여러 GPU를 사용하는 확장이든 관계없이 하드웨어 성능을 극대화하십시오.
  • 범용성: COCO, VOC, ImageNet과 같은 쉽게 사용할 수 있는 데이터셋 외에도 사용자 정의 데이터셋으로 학습할 수 있습니다.
  • 사용자 친화성: 간편하면서도 강력한 CLI 및 Python 인터페이스를 통해 직관적인 학습 경험을 제공합니다.
  • 하이퍼파라미터 유연성: 모델 성능을 미세 조정할 수 있는 광범위한 하이퍼파라미터를 제공합니다. 더 깊은 제어를 원하시면 트레이너를 사용자 정의할 수 있습니다.
  • 클라우드 학습: Ultralytics Platform을 통해 실시간 지표 확인 및 자동 체크포인트 저장 기능을 갖춘 클라우드 GPU에서 학습할 수 있습니다.

Link to this section학습 모드의 주요 기능#

다음은 YOLO26 학습 모드의 주요 기능입니다:

  • 자동 데이터셋 다운로드: COCO, VOC, ImageNet과 같은 표준 데이터셋은 처음 사용할 때 자동으로 다운로드됩니다.
  • 다중 GPU 지원: 여러 GPU에서 학습 작업을 원활하게 확장하여 프로세스 속도를 높이십시오.
  • 하이퍼파라미터 구성: YAML 구성 파일 또는 CLI 인수를 통해 하이퍼파라미터를 수정하는 옵션을 제공합니다.
  • 시각화 및 모니터링: 학습 지표의 실시간 추적과 학습 과정 시각화를 통해 더 나은 통찰력을 제공합니다.
  • COCO, VOC, ImageNet 등과 같은 YOLO26 데이터셋은 처음 사용 시 자동으로 다운로드됩니다 (예: yolo train data=coco.yaml).

Link to this section사용 예제#

COCO8 데이터셋에서 640 이미지 크기로 100 에폭 동안 YOLO26n을 학습하십시오. 학습 장치는 device 인수를 사용하여 지정할 수 있습니다. 인수가 전달되지 않으면 사용 가능한 경우 GPU device=0이 사용되며, 그렇지 않으면 device='cpu'가 사용됩니다. 모든 학습 인수 목록은 아래의 인수 섹션을 참조하십시오.

Windows 다중 처리 오류

Windows에서 학습을 스크립트로 실행할 때 RuntimeError가 발생할 수 있습니다. 이를 해결하려면 학습 코드 앞에 if __name__ == "__main__": 블록을 추가하십시오.

단일 GPU 및 CPU 학습 예시

장치는 자동으로 결정됩니다. GPU를 사용할 수 있는 경우 해당 GPU(기본 CUDA 장치 0)가 사용되며, 그렇지 않으면 CPU에서 학습이 시작됩니다.

from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.yaml")  # build a new model from YAML
model = YOLO("yolo26n.pt")  # load a pretrained model (recommended for training)
model = YOLO("yolo26n.yaml").load("yolo26n.pt")  # build from YAML and transfer weights

# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

Link to this section다중 GPU 학습#

다중 GPU 학습은 여러 GPU에 학습 부하를 분산시켜 사용 가능한 하드웨어 자원을 더욱 효율적으로 활용할 수 있게 합니다. 이 기능은 Python API와 명령줄 인터페이스 모두에서 사용할 수 있습니다. 다중 GPU 학습을 활성화하려면 사용하려는 GPU 장치 ID를 지정하십시오.

다중 GPU 학습 예시

2개의 GPU(CUDA 장치 0 및 1)로 학습하려면 다음 명령어를 사용하십시오. 필요에 따라 더 많은 GPU로 확장하십시오.

from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.pt")  # load a pretrained model (recommended for training)

# Train the model with 2 GPUs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=[0, 1])

# Train the model with the two most idle GPUs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=[-1, -1])
사용자 정의 코드를 활용한 다중 GPU 학습

여러 장치를 지정하면(예: device=[0, 1]), Ultralytics는 내부적으로 새로운 트레이너 인스턴스를 생성하고 내부적으로 torch.distributed.run을 실행합니다. 이는 표준 CLI 사용 및 수정되지 않은 Python 스크립트에서 원활하게 작동합니다.

그러나 스크립트에 사용자 정의 트레이너, 유효성 검사기, 데이터셋 또는 증강 파이프라인과 같은 사용자 정의 구성 요소가 포함된 경우, 이러한 객체는 자동으로 직렬화되어 DDP 하위 프로세스로 전송될 수 없습니다. 이 경우 torch.distributed.run을 사용하여 직접 스크립트를 실행해야 합니다:

python -m torch.distributed.run --nproc_per_node 2 your_training_script.py

Link to this section유휴 GPU 학습#

유휴 GPU 학습을 사용하면 다중 GPU 시스템에서 사용률이 가장 낮은 GPU를 자동으로 선택하여 수동 선택 없이 리소스 사용을 최적화할 수 있습니다. 이 기능은 사용률 지표 및 VRAM 가용성을 기반으로 사용 가능한 GPU를 식별합니다.

유휴 GPU 학습 예시

학습을 위해 가장 유휴 상태인 GPU를 자동으로 선택하고 사용하려면 -1 장치 매개변수를 사용하십시오. 이는 공유 컴퓨팅 환경이나 다중 사용자가 있는 서버에서 특히 유용합니다.

from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.pt")  # load a pretrained model (recommended for training)

# Train using the single most idle GPU
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=-1)

# Train using the two most idle GPUs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=[-1, -1])

자동 선택 알고리즘은 다음을 우선순위로 합니다:

  1. 현재 사용률 백분율이 낮은 GPU
  2. 사용 가능한 메모리(무료 VRAM)가 더 높은 GPU
  3. 온도 및 전력 소비가 낮은 GPU

이 기능은 공유 컴퓨팅 환경이나 서로 다른 모델에 대해 여러 학습 작업을 실행할 때 특히 유용합니다. 변화하는 시스템 조건에 자동으로 적응하여 수동 개입 없이도 최적의 리소스 할당을 보장합니다.

Link to this sectionApple Silicon MPS 학습#

Ultralytics YOLO 모델에 통합된 Apple Silicon 칩 지원을 통해 강력한 Metal Performance Shaders(MPS) 프레임워크를 활용하는 장치에서 모델을 학습할 수 있습니다. MPS는 Apple의 맞춤형 실리콘에서 계산 및 이미지 처리 작업을 수행하는 고성능 방식을 제공합니다.

Apple Silicon 칩에서 학습을 활성화하려면 학습 프로세스를 시작할 때 장치로 'mps'를 지정해야 합니다. 아래는 Python 및 명령줄을 통해 이를 수행하는 방법의 예시입니다:

MPS 학습 예시
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.pt")  # load a pretrained model (recommended for training)

# Train the model with MPS
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device="mps")

Apple Silicon 칩의 계산 능력을 활용하면서 학습 작업을 더욱 효율적으로 처리할 수 있습니다. 더 자세한 가이드와 고급 구성 옵션은 PyTorch MPS 문서를 참조하십시오.

Link to this section중단된 학습 재개#

이전에 저장된 상태에서 학습을 재개하는 것은 딥러닝 모델 작업 시 중요한 기능입니다. 이는 학습 프로세스가 예기치 않게 중단되었거나, 새로운 데이터로 모델을 계속 학습하거나, 더 많은 에폭 동안 학습을 이어가고 싶을 때 유용합니다.

학습이 재개되면 Ultralytics YOLO는 마지막으로 저장된 모델의 가중치를 불러오고 옵티마이저 상태, 학습률 스케줄러 및 에폭 번호를 복원합니다. 이를 통해 학습을 중단했던 지점부터 원활하게 계속할 수 있습니다.

You can easily resume training in Ultralytics YOLO by setting the resume argument to True when calling the train method, and specifying the path to the .pt file containing the partially trained model weights.

다음은 Python 및 명령줄을 사용하여 중단된 학습을 재개하는 방법의 예시입니다:

학습 재개 예시
from ultralytics import YOLO

# Load a model
model = YOLO("path/to/last.pt")  # load a partially trained model

# Resume training
results = model.train(resume=True)

resume=True로 설정하면 train 함수는 'path/to/last.pt' 파일에 저장된 상태를 사용하여 중단된 지점부터 학습을 계속합니다. resume 인수를 생략하거나 False로 설정하면 train 함수는 새로운 학습 세션을 시작합니다.

체크포인트는 기본적으로 모든 에폭이 끝날 때마다 또는 save_period 인수를 사용하여 고정된 간격으로 저장되므로, 학습을 재개하려면 최소 1번의 에폭을 완료해야 합니다.

Link to this section학습 설정#

YOLO 모델의 학습 설정은 학습 과정 중에 사용되는 다양한 하이퍼파라미터 및 구성을 포함합니다. 이러한 설정은 모델의 성능, 속도 및 정확도에 영향을 미칩니다. 주요 학습 설정에는 배치 크기, 학습률, 모멘텀, 가중치 감쇠가 포함됩니다. 또한 옵티마이저, 손실 함수 및 학습 데이터셋 구성의 선택이 학습 과정에 영향을 줄 수 있습니다. 성능 최적화를 위해서는 이러한 설정을 신중하게 조정하고 실험하는 것이 중요합니다.

Link to this sectionMuSGD 옵티마이저#

YOLO26에서 MuSGD는 표준 SGD 업데이트와 Muon 스타일의 직교 업데이트를 결합한 하이브리드 옵티마이저입니다.

이는 더 긴 YOLO26 학습 및 더 큰 데이터셋에 권장되며, 직교화된 Muon 업데이트가 최적화를 안정화하는 데 도움이 될 수 있습니다.

param.ndim >= 2(예: 컨볼루션 가중치)인 매개변수만 SGD와 함께 Muon 스타일 업데이트를 받으며, 배치 정규화 계층 및 편향 항과 같은 더 낮은 차원의 매개변수는 표준 SGD로 유지됩니다.

optimizer=auto를 사용하면 Ultralytics는 더 긴 학습(보통 반복 횟수 > 10000)을 위해 자동으로 MuSGD를 선택합니다. 더 짧은 실행의 경우, 트레이너는 AdamW로 되돌아갑니다.

사용 예시:

yolo train model=yolo26n.pt data=coco8.yaml optimizer=MuSGD

ultralytics/optim/muon.py의 구현과 BaseTrainer.build_optimizer의 옵티마이저 자동 선택 로직을 참조하십시오.

인수유형기본값설명
modelstrNone학습을 위한 모델 파일을 지정합니다. 사전 학습된 .pt 모델 또는 .yaml 구성 파일 경로를 허용합니다. 모델 구조를 정의하거나 가중치를 초기화하는 데 필수적입니다.
datastrNone데이터셋 구성 파일(예: coco8.yaml)의 경로입니다. 이 파일에는 학습 및 검증 데이터 경로, 클래스 이름 및 클래스 수를 포함하여 데이터셋 관련 매개변수가 포함되어 있습니다.
epochsint100총 학습 에폭 수입니다. 각 에폭은 전체 데이터셋을 한 번 학습하는 과정을 의미합니다. 이 값을 조정하면 학습 기간과 모델 성능에 영향을 줄 수 있습니다.
timefloatNone시간 단위의 최대 학습 시간입니다. 설정하면 epochs 인수를 재정의하여 지정된 시간이 지난 후 학습을 자동으로 중지합니다. 시간 제한이 있는 학습 시나리오에 유용합니다.
patienceint100검증 지표가 개선되지 않았을 때 조기 중단을 수행하기 전까지 기다리는 에폭 수입니다. 성능이 정체될 때 학습을 중단하여 과적합을 방지하는 데 도움이 됩니다.
batchint 또는 float16배치 크기로, 정수(예: batch=16), GPU 메모리 60% 활용을 위한 자동 모드(batch=-1), 지정된 활용 비율을 사용하는 자동 모드(batch=0.70) 등 세 가지 모드가 있습니다.
imgszint640학습을 위한 대상 이미지 크기입니다. 이미지는 지정된 값과 동일한 변을 가진 정사각형으로 크기가 조정되며(rect=False인 경우), YOLO 모델의 경우 가로세로 비율을 유지하지만 RT-DETR은 그렇지 않습니다. 모델 정확도와 계산 복잡성에 영향을 미칩니다.
saveboolTrue학습 체크포인트 및 최종 모델 가중치 저장을 활성화합니다. 학습을 재개하거나 모델 배포 시 유용합니다.
save_periodint-1모델 체크포인트 저장 빈도로 에폭 단위로 지정됩니다. -1은 이 기능을 비활성화합니다. 긴 학습 세션 중에 중간 모델을 저장하는 데 유용합니다.
cacheboolFalse메모리(True/ram) 또는 디스크(disk)에 데이터셋 이미지를 캐싱하거나 캐싱을 비활성화(False)합니다. 메모리 사용량이 증가하는 대신 디스크 I/O를 줄여 학습 속도를 향상시킵니다.
deviceint 또는 str 또는 listNone학습을 위한 계산 장치를 지정합니다: 단일 GPU(device=0), 다중 GPU(device=[0,1]), CPU(device=cpu), Apple Silicon용 MPS(device=mps), Huawei Ascend NPU(device=npu 또는 device=npu:0), 또는 가장 유휴 상태인 GPU 자동 선택(device=-1) 또는 여러 개의 유휴 GPU(device=[-1,-1]).
workersint8데이터 로딩을 위한 워커 스레드 수입니다(다중 GPU 학습 시 RANK당 적용). 데이터 전처리 및 모델 입력 속도에 영향을 주며, 특히 다중 GPU 설정에서 유용합니다.
projectstrNone학습 출력이 저장되는 프로젝트 디렉터리 이름입니다. 다양한 실험을 체계적으로 저장할 수 있습니다.
namestrNone학습 실행 이름입니다. 프로젝트 폴더 내에 학습 로그와 결과물이 저장되는 하위 디렉터리를 만드는 데 사용됩니다.
exist_okboolFalseTrue인 경우, 기존 프로젝트/이름 디렉터리를 덮어쓸 수 있습니다. 이전 결과물을 수동으로 삭제할 필요 없이 반복적인 실험을 수행할 때 유용합니다.
pretrainedbool 또는 strTrue사전 학습된 가중치로 학습을 시작할지 결정합니다. 불리언 값이거나 불러올 가중치에 대한 문자열 경로일 수 있습니다. pretrained=False는 모델 아키텍처를 유지하면서 무작위로 초기화된 가중치로 학습합니다.
optimizerstr'auto'학습을 위한 옵티마이저 선택입니다. SGD, MuSGD, Adam, Adamax, AdamW, NAdam, RAdam, RMSProp 또는 모델 구성에 기반한 자동 선택을 위한 auto가 포함됩니다. 수렴 속도와 안정성에 영향을 미칩니다.
seedint0학습을 위한 난수 시드를 설정하여 동일한 구성으로 실행할 때 결과의 재현성을 보장합니다.
deterministicboolTrue결정론적 알고리즘 사용을 강제하여 재현성을 보장하지만, 비결정론적 알고리즘 사용 제한으로 인해 성능과 속도에 영향을 줄 수 있습니다.
verboseboolTrue학습 중 상세 출력을 활성화하여 콘솔에 진행률 표시줄, 에포크별 메트릭 및 추가 학습 정보를 표시합니다.
single_clsboolFalse학습 중 다중 클래스 데이터셋의 모든 클래스를 단일 클래스로 취급합니다. 이진 분류 작업이나 분류보다는 객체 존재 여부에 집중할 때 유용합니다.
classeslist[int]None학습할 클래스 ID 목록을 지정합니다. 학습 중 특정 클래스만 필터링하고 집중하는 데 유용합니다.
rectboolFalse최소 패딩 전략을 활성화합니다. 배치 내 이미지는 가장 긴 변이 imgsz와 같아지도록 공통 크기에 맞춰 최소한으로 패딩됩니다. 효율성과 속도를 향상시킬 수 있지만 모델 정확도에 영향을 줄 수 있습니다.
multi_scalefloat0.0각 배치마다 imgsz를 +/- multi_scale(예: 0.25 -> 0.75x ~ 1.25x) 범위에서 무작위로 변경하며, 모델 스트라이드 배수로 반올림합니다. 0.0은 멀티 스케일 학습을 비활성화합니다.
cos_lrboolFalse코사인 학습률 스케줄러를 사용하여 에포크에 따라 코사인 곡선을 따라 학습률을 조정합니다. 더 나은 수렴을 위해 학습률을 관리하는 데 도움이 됩니다.
close_mosaicint10완료 전 마지막 N 에포크 동안 모자이크 데이터 증강을 비활성화하여 학습을 안정화합니다. 0으로 설정하면 이 기능이 비활성화됩니다.
resumeboolFalse마지막으로 저장된 체크포인트에서 학습을 재개합니다. 모델 가중치, 옵티마이저 상태 및 에포크 수를 자동으로 로드하여 학습을 원활하게 이어갑니다.
ampboolTrue자동 혼합 정밀도(AMP) 학습을 활성화하여 메모리 사용량을 줄이고 정확도에 미치는 영향을 최소화하면서 학습 속도를 높일 수 있습니다.
fractionfloat1.0학습에 사용할 데이터셋의 비율을 지정합니다. 전체 데이터셋의 하위 집합으로 학습할 수 있게 하여 실험이나 자원이 제한된 경우에 유용합니다.
profileboolFalse학습 중 ONNX 및 TensorRT 속도 프로파일링을 활성화하여 모델 배포 최적화에 유용합니다.
freezeint 또는 listNone모델의 처음 N개 레이어 또는 인덱스로 지정된 레이어를 동결하여 학습 가능한 파라미터 수를 줄입니다. 파인 튜닝이나 전이 학습에 유용합니다.
lr0float0.01초기 학습률(예: SGD=1E-2, Adam=1E-3). 이 값을 조정하는 것은 최적화 프로세스에 매우 중요하며 모델 가중치가 얼마나 빠르게 업데이트되는지에 영향을 미칩니다.
lrffloat0.01초기 학습률의 비율로 표현한 최종 학습률 = (lr0 * lrf). 스케줄러와 함께 사용하여 시간 경과에 따른 학습률을 조정합니다.
momentumfloat0.937SGD의 모멘텀 팩터 또는 Adam 옵티마이저의 beta1 값으로, 현재 업데이트 시 과거 그래디언트를 포함하는 정도에 영향을 미칩니다.
weight_decayfloat0.0005L2 정규화 항으로, 큰 가중치에 페널티를 주어 과적합을 방지합니다.
warmup_epochsfloat3.0학습률 웜업을 위한 에포크 수로, 낮은 값에서 초기 학습률까지 점진적으로 학습률을 높여 초기 학습을 안정화합니다.
warmup_momentumfloat0.8웜업 단계의 초기 모멘텀으로, 웜업 기간 동안 설정된 모멘텀으로 점진적으로 조정됩니다.
warmup_bias_lrfloat0.1웜업 단계에서의 바이어스 파라미터에 대한 학습률로, 초기 에포크에서 모델 학습을 안정화하는 데 도움을 줍니다.
boxfloat7.5손실 함수 내 박스 손실 성분의 가중치로, 바운딩 박스 좌표를 정확하게 예측하는 데 얼마나 중점을 둘지 결정합니다.
clsfloat0.5전체 손실 함수에서 분류 손실의 가중치로, 다른 구성 요소 대비 올바른 클래스 예측의 중요도에 영향을 미칩니다.
cls_pwfloat0.0역 클래스 빈도를 사용하여 클래스 불균형을 처리하기 위한 클래스 가중치 파워입니다. 0.0은 클래스 가중치를 비활성화하고, 1.0은 전체 역 빈도 가중치를 적용합니다. 0에서 1 사이의 값은 부분적인 가중치를 제공합니다.
dflfloat1.5분포 초점 손실(Distribution Focal Loss)의 가중치로, 특정 YOLO 버전에서 세밀한 분류를 위해 사용됩니다.
posefloat12.0포즈 추정을 위해 학습된 모델의 포즈 손실 가중치로, 포즈 키포인트를 정확하게 예측하는 데 강조점을 둡니다.
kobjfloat1.0포즈 추정 모델에서의 키포인트 오브젝트니스 손실 가중치로, 감지 신뢰도와 포즈 정확도 간의 균형을 맞춥니다.
rlefloat1.0포즈 추정 모델에서의 잔차 로그 우도 추정 손실 가중치로, 키포인트 위치 지정의 정밀도에 영향을 미칩니다.
anglefloat1.0obb 모델에서의 각도 손실 가중치로, 회전된 바운딩 박스 각도 예측의 정밀도에 영향을 미칩니다.
nbsint64손실 정규화를 위한 명목 배치 크기입니다.
overlap_maskboolTrue학습을 위해 객체 마스크를 단일 마스크로 병합할지 아니면 각 객체마다 별도로 유지할지 결정합니다. 겹치는 경우, 병합 시 더 작은 마스크가 더 큰 마스크 위에 덮어씌워집니다.
mask_ratioint4세그멘테이션 마스크에 대한 다운샘플링 비율로, 학습 중 사용되는 마스크의 해상도에 영향을 미칩니다.
dropoutfloat0.0분류 작업에서 정규화를 위한 드롭아웃 비율로, 학습 중 유닛을 무작위로 생략하여 과적합을 방지합니다.
valboolTrue학습 중 검증을 활성화하여 별도의 데이터셋에서 모델 성능을 주기적으로 평가할 수 있습니다.
plotsboolTrue학습 및 검증 메트릭과 예측 예시의 플롯을 생성하고 저장하여 모델 성능과 학습 진행 상황에 대한 시각적 통찰을 제공합니다.
compilebool 또는 strFalseEnables PyTorch 2.x torch.compile graph compilation with backend='inductor'. Accepts True"default", False → disables, or a string mode such as "default", "reduce-overhead", "max-autotune-no-cudagraphs". Falls back to eager with a warning if unsupported.
max_detint300학습의 검증 단계에서 유지되는 최대 객체 수를 지정합니다.
배치 크기 설정에 대한 참고 사항

batch 인자는 다음 세 가지 방법으로 구성할 수 있습니다:

  • 고정 배치 크기: 정수 값(예: batch=16)을 설정하여 배치당 이미지 수를 직접 지정합니다.
  • 자동 모드 (GPU 메모리의 60%): batch=-1을 사용하여 CUDA 메모리 사용률이 약 60%가 되도록 배치 크기를 자동으로 조정합니다.
  • 사용률 비율을 사용하는 자동 모드: 비율 값(예: batch=0.70)을 설정하여 GPU 메모리 사용량의 지정된 비율에 따라 배치 크기를 조정합니다.
  • OOM 자동 재시도: 첫 번째 에포크 동안 CUDA 메모리 부족 오류가 발생하면 트레이너가 자동으로 배치 크기를 절반으로 줄이고 최대 3회까지 재시도합니다. 이는 단일 GPU 학습에만 적용되며, 다중 GPU(DDP) 학습은 오류 발생 시 즉시 중단됩니다.

Link to this section증강 설정 및 하이퍼파라미터#

증강 기술은 학습 데이터에 변동성을 도입하여 YOLO 모델의 견고성과 성능을 개선하고 모델이 보지 못한 데이터로 일반화하는 데 도움을 줍니다. 다음 표는 각 증강 인자의 목적과 효과를 설명합니다:

인수유형기본값지원되는 작업범위설명
hsv_hfloat0.015detect, segment, pose, obb, classify0.0 - 1.0색상 휠의 일부만큼 이미지의 색조(Hue)를 조정하여 색상 변동성을 도입합니다. 모델이 다양한 조명 조건에서도 일반화할 수 있도록 돕습니다.
hsv_sfloat0.7detect, segment, pose, obb, classify0.0 - 1.0이미지의 채도(Saturation)를 일정 비율만큼 변경하여 색상 강도에 영향을 줍니다. 다양한 환경 조건을 시뮬레이션하는 데 유용합니다.
hsv_vfloat0.4detect, segment, pose, obb, classify0.0 - 1.0이미지의 명도(Value/Brightness)를 일정 비율만큼 수정하여 모델이 다양한 조명 환경에서 잘 작동하도록 돕습니다.
degreesfloat0detect, segment, pose, obb0.0 - 180이미지를 지정된 각도 범위 내에서 무작위로 회전시켜, 다양한 방향에 있는 객체를 인식하는 모델의 능력을 향상합니다.
translatefloat0.1detect, segment, pose, obb0.0 - 1.0이미지를 이미지 크기의 일부만큼 가로 및 세로로 이동시켜, 부분적으로 보이는 객체를 탐지하는 학습을 지원합니다.
scalefloat0.5detect, segment, pose, obb, classify0 - 1게인(gain) 계수만큼 이미지의 크기를 조정하여, 카메라로부터 다양한 거리에 있는 객체를 시뮬레이션합니다.
shearfloat0detect, segment, pose, obb-180 - +180지정된 각도만큼 이미지를 기울여, 다양한 각도에서 객체를 바라보는 효과를 모방합니다.
perspectivefloat0detect, segment, pose, obb0.0 - 0.001이미지에 무작위 원근 변환을 적용하여, 3D 공간 내의 객체를 이해하는 모델의 능력을 향상합니다.
flipudfloat0detect, segment, pose, obb, classify0.0 - 1.0지정된 확률로 이미지를 상하로 뒤집어, 객체의 특성을 변경하지 않으면서 데이터 가변성을 증가시킵니다.
fliplrfloat0.5detect, segment, pose, obb, classify0.0 - 1.0지정된 확률로 이미지를 좌우로 뒤집어, 대칭적인 객체를 학습하고 데이터셋의 다양성을 높이는 데 유용합니다.
bgrfloat0detect, segment, pose, obb0.0 - 1.0지정된 확률로 이미지 채널을 RGB에서 BGR로 전환하며, 잘못된 채널 순서에 대한 견고성을 높이는 데 유용합니다.
mosaicfloat1detect, segment, pose, obb0.0 - 1.04개의 학습 이미지를 하나로 결합하여 다양한 장면 구성과 객체 상호작용을 시뮬레이션합니다. 복잡한 장면 이해에 매우 효과적입니다.
mixupfloat0detect, segment, pose, obb0.0 - 1.0두 이미지와 해당 라벨을 혼합하여 합성 이미지를 생성합니다. 라벨 노이즈와 시각적 가변성을 도입하여 모델의 일반화 능력을 향상합니다.
cutmixfloat0detect, segment, pose, obb0.0 - 1.0두 이미지의 일부를 결합하여 뚜렷한 영역을 유지하면서 부분적인 혼합을 생성합니다. 폐색 시나리오를 만들어 모델의 견고성을 향상합니다.
copy_pastefloat0segment0.0 - 1.0이미지 전반에 걸쳐 객체를 복사하고 붙여넣어 객체 인스턴스를 늘립니다.
copy_paste_modestrflipsegment-사용할 copy-paste 전략을 지정합니다. 옵션에는 'flip''mixup'이 있습니다.
auto_augmentstrrandaugmentclassify-사전 정의된 증강 정책('randaugment', 'autoaugment', 또는 'augmix')을 적용하여 시각적 다양성을 통해 모델 성능을 향상합니다.
erasingfloat0.4classify0.0 - 1.0학습 중에 이미지의 영역을 무작위로 지워 모델이 덜 명확한 특징에 집중하도록 유도합니다.
augmentationslist``detect, segment, pose, obb-고급 데이터 증강을 위한 사용자 지정 Albumentations 변환(Python API 전용)입니다. 특수 증강 요구 사항을 위해 변환 객체 목록을 허용합니다.

이 설정들은 데이터셋과 현재 작업의 구체적인 요구 사항을 충족하도록 조정할 수 있습니다. 다양한 값을 실험하면 최상의 모델 성능을 이끌어내는 최적의 증강 전략을 찾는 데 도움이 됩니다.

정보

학습 증강 작업에 대한 자세한 정보는 참조 섹션을 참조하십시오.

Link to this section로깅#

YOLO26 모델을 학습할 때, 시간이 지남에 따라 모델의 성능을 추적하는 것이 가치 있을 수 있습니다. 이때 로깅이 필요합니다. Ultralytics YOLO는 Comet, ClearML, TensorBoard 등 세 가지 유형의 로거를 지원합니다.

로거를 사용하려면 위 코드 조각의 드롭다운 메뉴에서 선택하고 실행하십시오. 선택한 로거가 설치 및 초기화됩니다.

Link to this sectionComet#

Comet은 데이터 과학자와 개발자가 실험 및 모델을 추적, 비교, 설명 및 최적화할 수 있는 플랫폼입니다. 실시간 메트릭, 코드 차이점, 하이퍼파라미터 추적과 같은 기능을 제공합니다.

Comet 사용 방법:

예시
# pip install comet_ml
import comet_ml

comet_ml.init()

웹사이트에서 Comet 계정에 로그인하고 API 키를 얻는 것을 기억하십시오. 실험을 기록하려면 이를 환경 변수나 스크립트에 추가해야 합니다.

Link to this sectionClearML#

ClearML은 실험 추적을 자동화하고 효율적인 리소스 공유를 돕는 오픈 소스 플랫폼입니다. 팀이 ML 작업을 보다 효율적으로 관리, 실행 및 재현할 수 있도록 설계되었습니다.

ClearML 사용 방법:

예시
# pip install clearml
import clearml

clearml.browser_login()

이 스크립트를 실행한 후, 브라우저에서 ClearML 계정에 로그인하여 세션을 인증해야 합니다.

Link to this sectionTensorBoard#

TensorBoardTensorFlow를 위한 시각화 툴킷입니다. TensorFlow 그래프를 시각화하고, 그래프 실행에 대한 정량적 메트릭을 도표로 나타내며, 통과하는 이미지와 같은 추가 데이터를 표시할 수 있습니다.

Google Colab에서 TensorBoard를 사용하는 방법:

예시
load_ext tensorboard
tensorboard --logdir ultralytics/runs # replace with 'runs' directory

로컬에서 TensorBoard를 사용하려면 아래 명령을 실행하고 localhost:6006에서 결과를 확인하십시오.

예시
tensorboard --logdir ultralytics/runs # replace with 'runs' directory

이렇게 하면 TensorBoard가 로드되고 학습 로그가 저장된 디렉토리로 안내됩니다.

로거를 설정한 후 모델 학습을 진행할 수 있습니다. 모든 학습 메트릭은 선택한 플랫폼에 자동으로 기록되며, 이러한 로그에 액세스하여 시간이 지남에 따라 모델 성능을 모니터링하고, 여러 모델을 비교하며, 개선 영역을 파악할 수 있습니다.

Link to this sectionFAQ#

Link to this section로컬 GPU 없이 학습할 수 있나요?#

네. Ultralytics Platform은 시작할 수 있도록 무료 크레딧과 함께 클라우드 학습을 지원합니다. 데이터셋을 업로드하고 모델과 GPU를 선택한 다음 브라우저에서 직접 학습하십시오. 자세한 내용은 클라우드 학습 가이드를 참조하십시오.

Link to this sectionUltralytics YOLO26을 사용하여 객체 탐지 모델을 어떻게 학습합니까?#

Ultralytics YOLO26을 사용하여 객체 탐지 모델을 학습하려면 Python API나 CLI를 사용할 수 있습니다. 아래는 두 가지 모두에 대한 예시입니다:

단일 GPU 및 CPU 학습 예시
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

자세한 내용은 학습 설정 섹션을 참조하십시오.

Link to this sectionUltralytics YOLO26 학습 모드의 주요 기능은 무엇입니까?#

Ultralytics YOLO26 학습 모드의 주요 기능은 다음과 같습니다:

  • 자동 데이터셋 다운로드: COCO, VOC, ImageNet과 같은 표준 데이터셋을 자동으로 다운로드합니다.
  • 멀티 GPU 지원: 더 빠른 처리를 위해 여러 GPU에 걸쳐 학습을 확장합니다.
  • 하이퍼파라미터 구성: YAML 파일이나 CLI 인수를 통해 하이퍼파라미터를 사용자 지정합니다.
  • 시각화 및 모니터링: 더 나은 인사이트를 위한 학습 메트릭의 실시간 추적.

이러한 기능은 학습을 효율적이고 필요에 맞게 사용자 지정할 수 있게 합니다. 자세한 내용은 학습 모드의 주요 기능 섹션을 참조하십시오.

Link to this sectionUltralytics YOLO26에서 중단된 세션부터 학습을 재개하려면 어떻게 해야 합니까?#

중단된 세션에서 학습을 재개하려면 resume 인수를 True로 설정하고 마지막으로 저장된 체크포인트의 경로를 지정하십시오.

학습 재개 예시
from ultralytics import YOLO

# Load the partially trained model
model = YOLO("path/to/last.pt")

# Resume training
results = model.train(resume=True)

자세한 내용은 중단된 학습 재개하기 섹션을 확인하십시오.

Link to this section불균형한 데이터셋에서 모델을 학습하려면 어떻게 해야 합니까?#

클래스 불균형은 학습 데이터에서 일부 클래스가 다른 클래스보다 현저히 적은 예제를 가질 때 발생합니다. 이는 모델이 희귀 클래스에서 성능이 저조하게 만들 수 있습니다. Ultralytics YOLO는 이 문제를 해결하기 위해 cls_pw 인수를 통한 클래스 가중치 부여를 지원합니다.

cls_pw 인수는 역 클래스 빈도에 기반하여 클래스 가중치 부여 강도를 제어합니다:

  • cls_pw=0.0 (기본값): 클래스 가중치 부여 비활성화
  • cls_pw=1.0: 전체 역 빈도 가중치 부여 적용
  • 0.01.0 사이의 값: 중간 정도의 불균형에 대한 부분적 가중치 부여 제공

The class weights are computed as (1.0 / class_counts) ^ cls_pw and normalized so their mean equals 1.0.

불균형한 데이터셋에서 학습하기
from ultralytics import YOLO

# Load a pretrained model
model = YOLO("yolo26n.pt")

# Train with full class weighting for severely imbalanced data
results = model.train(data="custom.yaml", epochs=100, imgsz=640, cls_pw=1.0)

# Or use partial weighting (0.25) for moderate imbalance
results = model.train(data="custom.yaml", epochs=100, imgsz=640, cls_pw=0.25)

중간 정도의 불균형 데이터셋의 경우 cls_pw=0.25로 시작하고, 여전히 희귀 클래스의 성능이 저조하면 1.0까지 높이십시오. 학습 로그에서 계산된 클래스 가중치를 확인하여 가중치 분포를 검증할 수 있습니다.

Link to this sectionApple 실리콘 칩에서 YOLO26 모델을 학습할 수 있습니까?#

네, Ultralytics YOLO26은 MPS(Metal Performance Shaders) 프레임워크를 활용하여 Apple 실리콘 칩에서 학습을 지원합니다. 학습 장치로 'mps'를 지정하십시오.

MPS 학습 예시
from ultralytics import YOLO

# Load a pretrained model
model = YOLO("yolo26n.pt")

# Train the model on Apple silicon chip (M1/M2/M3/M4)
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device="mps")

자세한 내용은 Apple 실리콘 MPS 학습 섹션을 참조하십시오.

Link to this section일반적인 학습 설정은 무엇이며, 어떻게 구성합니까?#

Ultralytics YOLO26은 인수를 통해 배치 크기, 학습률, 에포크 등 다양한 학습 설정을 구성할 수 있게 합니다. 간단한 개요는 다음과 같습니다:

인수기본값설명
modelNone학습할 모델 파일의 경로입니다.
dataNone데이터셋 구성 파일의 경로입니다 (예: coco8.yaml).
epochs100총 학습 에포크 수입니다.
batch16정수 또는 자동 모드로 조정 가능한 배치 크기입니다.
imgsz640학습을 위한 대상 이미지 크기입니다.
deviceNonecpu, 0, 0,1, 또는 mps와 같이 학습을 위한 연산 장치입니다.
saveTrue학습 체크포인트와 최종 모델 가중치 저장을 활성화합니다.

학습 설정에 대한 심층적인 가이드는 학습 설정 섹션을 확인하십시오.

댓글