from ultralytics import YOLO
model = YOLO('yolo11n.pt')
results = model.train(
# Learning Rate 관련
lr0=0.01, # 초기 학습률
lrf=0.01, # 최종 학습률 비율
momentum=0.937, # SGD 모멘텀
weight_decay=0.0005, # 가중치 감쇠
# 기본 학습 설정
data='dataset.yaml',
epochs=100,
imgsz=256,
batch=32,
device="cuda:0",
workers=2,
# 추가 최적화 파라미터
optimizer='SGD', # 'SGD', 'AdamW'
cos_lr=False, # 코사인 학습률 스케줄러 #True 바꾸기
warmup_epochs=3, # 워밍업 에폭 수 #5로 바꾸기
warmup_momentum=0.8, # 워밍업 모멘텀
warmup_bias_lr=0.1, # 워밍업 바이어스 학습률
# 성능 최적화
amp=True, # 자동 혼합 정밀도 - 메모리 절약 & 속도 향상
cache="disk", # 디스크 캐싱 - 두 번째 에포크부터 빠른 로딩
# 손실 함수 가중치 조정
box=7.5, # 바운딩 박스 손실 가중치
cls=1.5, # 분류 손실 가중치
dfl=1.0, # Distribution Focal Loss 가중치
# 기본 데이터 증강 (성능 향상)
hsv_s=0.10, # 채도 변경 10%
hsv_v=0.10, # 명도 변경 10%
translate=0.05, # 이미지 5% 이동
scale=0.10, # 이미지 10% 크기 변경
fliplr=0.2, # 좌우 반전 20%
# mosaic, mixup 추가하기
# 프로젝트 관리
project="runs/train", # 결과 저장 디렉토리
name="yolo11n_custom", # 실험 이름
exist_ok=False, # 기존 디렉토리 덮어쓰기 금지
# 저장 설정
save_period=10, # 몇 에폭마다 체크포인트 저장할지
patience=5, # 얼리 스타핑
)
result:
Class Images Instances Box(P. R mAP50 mAP50-95
all 8546 8546 0.911 0.878 0.928 0.555
bounding box 8546 8546 0.911 0.878 0.928 0.555