[파인 튜닝] PaddleOCR 성능 분석 및 체크포인트

2025. 12. 30. 10:27·3. 자습 & 메모(실전, 실습, 프로젝트)/3-2 메모(실전, 프로젝트)

PaddleOCR 성능 분석 및 체크포인트

1. Loss 1.1의 의미

현재 성능 지표

  • Loss: 1.087949 ~ 1.153657 (정상 범위)
  • Precision: 91.2% (매우 높음)
  • Recall: 88.3% (매우 높음)
  • HMean: 89.7% (매우 높음)

Loss 해석

  1. Loss 1.1은 문제가 없습니다

    • Detection 모델의 Loss는 일반적으로 0.5~2.0 범위
    • 초기 Loss (1.6~1.8)에서 현재 1.1로 개선됨
    • Loss는 상대적 값이며, 절대적 성능 지표는 아님
  2. 실제 성능은 HMean으로 판단합니다

    • HMean 89.7%는 매우 우수한 성능
    • Precision 91.2%: 모델이 텍스트라고 예측한 것 중 91.2%가 실제 텍스트
    • Recall 88.3%: 실제 텍스트 중 88.3%를 정확히 찾아냄
  3. 결론

    • Loss 1.1은 정상 범위이며, 모델이 제대로 학습되고 있음
    • HMean 89.7%가 실제 OCR 성능을 나타내는 지표

2. 체크포인트 재개 시 변경 가능한 항목

2.1 변경 가능한 항목 (문제없음)

  1. 데이터셋 크기 (train_label.txt 라인 수)

    • 데이터를 줄이거나 늘려도 체크포인트 재개 가능
    • 예: 164,998 라인 → 50,000 라인으로 줄여도 학습 재개 가능
    • Train.dataset.label_file_list 경로만 변경하면 됨
  2. 검증 데이터셋 (val_label.txt)

    • 검증 데이터셋 크기나 내용 변경 가능
    • Eval.dataset.label_file_list 경로만 변경하면 됨
  3. 학습률 (Learning Rate)

    • Optimizer.lr 설정 변경 가능
    • 단, optimizer 상태(.pdopt)는 이전 학습률로 저장되어 있음
    • 일반적으로 재개 시 초기 학습률로 재설정
  4. Epoch 수

    • Global.epoch_num 변경 가능
    • 예: 20 → 12로 줄여도 문제없음
  5. 평가/저장 주기

    • Global.eval_batch_step 변경 가능
    • Global.save_epoch_step 변경 가능

2.2 변경 시 주의해야 할 항목

  1. 배치 크기 (batch_size_per_card)

    • 변경 가능하지만, optimizer 상태와 약간의 불일치 가능
    • 일반적으로 문제없지만, 메모리 제약으로 인한 변경은 안전
    • 예: 16 → 8 또는 16 → 12 변경 가능
  2. 이미지 크기 (EastRandomCropData.size)

    • 변경 가능하지만, 모델이 이미 학습된 이미지 크기에 적응되어 있음
    • 크기를 줄이면 속도 향상 (640x640 → 512x512)
    • 크기를 늘리면 메모리 사용량 증가 (OOM 주의)
  3. 데이터 증강 (transforms)

    • 변경 가능하지만, 학습 패턴에 영향
    • 일반적으로 문제없음

2.3 변경 불가능한 항목 (체크포인트 재개 불가)

  1. 모델 아키텍처 (Architecture)

    • Backbone, Neck, Head 구조 변경 불가
    • 채널 수, 레이어 수 등 변경 시 체크포인트 로드 불가
    • 예: out_channels: 96 → 256 변경 시 shape mismatch
  2. 알고리즘 (algorithm)

    • DB → EAST 등 알고리즘 변경 불가
    • 완전히 다른 모델 구조

3. Epoch 2 완료 후 데이터 줄이고 속도 향상시키기

3.1 절차

  1. Epoch 2 완료 대기

    • iter_epoch_2.* 파일 생성 확인
    • 파일: iter_epoch_2.pdparams, iter_epoch_2.pdopt, iter_epoch_2.states
  2. 데이터 줄이기 (선택사항)

# train_label.txt에서 일부만 추출
# 예: 처음 50,000 라인만 사용
Get-Content "C:\Pyg\Projects\semi\yuzyproject-aimodels\core\paddle_train\data\det\train_label.txt" | Select-Object -First 50000 | Set-Content "C:\Pyg\Projects\semi\yuzyproject-aimodels\core\paddle_train\data\det\train_label_reduced.txt"
  1. 설정 변경 (det_ke_finetune.yml)
# 이미지 크기 줄이기 (속도 향상)
EastRandomCropData:
  size: [512, 512]  # 640 -> 512

# Epoch 수 줄이기
Global:
  epoch_num: 12  # 20 -> 12

# 배치 크기 조정 (OOM 방지)
Train:
  loader:
    batch_size_per_card: 20  # 16 -> 20 (메모리 여유 시)
  1. 체크포인트에서 재개
cd C:\Pyg\Tools\PaddleOCR
C:\Pyg\Projects\semi\yuzyproject-aimodels\venv_ocr\Scripts\python.exe tools/train.py ^
  -c C:\Pyg\Projects\semi\yuzyproject-aimodels\core\paddle_train\configs\det_ke_finetune.yml ^
  -o Global.checkpoints="C:/Pyg/Projects/semi/yuzyproject-aimodels/output/det_ke_model/iter_epoch_2" ^
    Train.dataset.label_file_list="C:/Pyg/Projects/semi/yuzyproject-aimodels/core/paddle_train/data/det/train_label_reduced.txt" ^
    Eval.dataset.label_file_list="C:/Pyg/Projects/semi/yuzyproject-aimodels/core/paddle_train/data/det/val_label.txt"

3.2 속도 향상 예상

  • 이미지 크기 640→512: 약 1.5배 속도 향상
  • 데이터 50% 감소: 약 2배 속도 향상
  • Epoch 20→12: 학습 시간 40% 단축
  • 종합: 현재 ETA 15일 → 약 4~5일로 단축 가능

3.3 성능 영향

  • 데이터 감소: 성능 약간 하락 가능 (89.7% → 87~88% 예상)
  • 이미지 크기 감소: 작은 텍스트 검출 성능 약간 하락 가능
  • Epoch 감소: 충분히 학습되지 않을 수 있음

4. 권장 사항

옵션 1: 데이터 유지, 이미지 크기만 줄이기 (권장)

  • 데이터는 유지하여 성능 보존
  • 이미지 크기 640→512로 줄여 속도 향상
  • Epoch 12~15로 조정
  • 예상: ETA 15일 → 67일, 성능 89.7% → 8889%

옵션 2: 데이터와 이미지 크기 모두 줄이기

  • 데이터 50% 감소 (82,499 라인)
  • 이미지 크기 512x512
  • Epoch 12
  • 예상: ETA 15일 → 34일, 성능 89.7% → 8687%

옵션 3: 현재 설정 유지 (성능 최우선)

  • 모든 설정 유지
  • ETA 15일 지속
  • 성능 89.7% 유지 또는 향상

5. 체크포인트 재개 시 주의사항

  1. .states 파일 확인

    • iter_epoch_2.states 파일이 있어야 epoch 정보 로드 가능
    • 없으면 epoch 0부터 다시 시작 (학습률 초기화)
  2. optimizer 상태

    • .pdopt 파일이 있으면 optimizer 상태(모멘텀 등) 복원
    • 없으면 optimizer 초기화 (학습 초기 단계처럼 동작)
  3. best_accuracy

    • 재개 시 best_accuracy.*는 이전 최고 성능 유지
    • 새로운 최고 성능 시 자동 업데이트
  4. 로그 연속성

    • train.log는 이어서 기록됨
    • 이전 로그는 보존됨

'3. 자습 & 메모(실전, 실습, 프로젝트) > 3-2 메모(실전, 프로젝트)' 카테고리의 다른 글

[MEMO] PaddleOCR 코드 문법 인식 모델 학습  (0) 2026.01.01
[MEMO] 학습 데이터셋 정제 작업 메모  (0) 2025.12.31
[파인 튜닝] PaddleOCR Detection 모델 학습 가이드  (1) 2025.12.30
PaddleOCR Detection 파인튜닝 실전 기록 (중간 점검)  (0) 2025.12.28
[Memo] PaddleOCR + AIHub 데이터셋  (0) 2025.12.26
'3. 자습 & 메모(실전, 실습, 프로젝트)/3-2 메모(실전, 프로젝트)' 카테고리의 다른 글
  • [MEMO] PaddleOCR 코드 문법 인식 모델 학습
  • [MEMO] 학습 데이터셋 정제 작업 메모
  • [파인 튜닝] PaddleOCR Detection 모델 학습 가이드
  • PaddleOCR Detection 파인튜닝 실전 기록 (중간 점검)
고니3000원
고니3000원
공부 내용 정리, 자기발전 블로그 입니다. 기존 네이버 블로그에서 티스토리로 이전했습니다. https://blog.naver.com/pak1010pak
  • 고니3000원
    곤이의 공부 블로그
    고니3000원
  • 전체
    오늘
    어제
    • 분류 전체보기 (178) N
      • 1. AI 논문 + 모델 분석 (20)
        • AI 논문 분석 (13)
        • AI 모델 분석 (7)
      • 2. 자료구조와 알고리즘 (16)
        • 2-1 자료구조와 알고리즘 (13)
        • 2-2 강화학습 알고리즘 (3)
      • 3. 자습 & 메모(실전, 실습, 프로젝트) (25)
        • 3-1 문제 해석 (4)
        • 3-2 메모(실전, 프로젝트) (14)
        • 3-3 배포 실전 공부 (7)
      • 4. [팀] 프로젝트 및 공모전 (14)
        • 4-1 팀 프로젝트(메모, 공부) (1)
        • 4-2 Meat-A-Eye (6)
        • 4-3 RL-Tycoon-Agent (3)
        • 4-4 구조물 안정성 물리 추론 AI 경진대회(D.. (4)
      • 5. [개인] 프로젝트 및 공모전 (0)
        • 4-1 귀멸의칼날디펜스(자바스크립트 활용) (5)
        • 4-2 바탕화면 AI 펫 프로그램 (4)
        • 4-3 개인 프로젝트(기타) (3)
      • 개념 정리 step1 (32)
        • Python 기초 (7)
        • DBMS (1)
        • HTML | CSS (3)
        • Git | GitHub (1)
        • JavaScript (5)
        • Node.js (5)
        • React (1)
        • 데이터 분석 (6)
        • Python Engineering (3)
      • 개념 정리 step2 (57) N
        • Machine | Deep Learning (15)
        • 멀티모달(Multi-modal) (23)
        • 강화 학습 (10)
        • AI Agent (9) N
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 네이버 곤이의 블로그(Naver->Tistory)
    • Github
  • 공지사항

  • 인기 글

  • 태그

    강화학습
    pandas
    데이터분석
    자바스크립트
    javascript
    Vision
    파인튜닝
    paddleocr
    알고리즘
    bottleneck
    논문 리뷰
    ViT
    github
    귀칼
    공모전
    OCR
    구현
    Ai
    학습
    Python
    OCR학습
    html
    Grad-CAM
    프로젝트
    자료구조
    transformer
    파이썬
    Attention Is All You Need
    강화 학습
    EfficientNet
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
고니3000원
[파인 튜닝] PaddleOCR 성능 분석 및 체크포인트
상단으로

티스토리툴바