MuscleCare-Train-AI / README.md
Merry99's picture
Spaces용 μ½”λ“œλ§Œ 포함 (λͺ¨λΈ 파일 μ œμ™Έ)
2b83ee8
metadata
title: MuscleCare Train AI
emoji: πŸ”₯
colorFrom: green
colorTo: purple
sdk: docker
pinned: false
license: apache-2.0

MuscleCare Train AI

CNN + GRU 기반 근윑 ν”Όλ‘œλ„ 예츑 λͺ¨λΈ μžλ™ ν•™μŠ΅ μ‹œμŠ€ν…œ

πŸš€ μ£Όμš” κΈ°λŠ₯

  • μžλ™ 데이터 λ‘œλ”©: Hugging Face Merry99/MuscleCare-DataSet 데이터셋 μžλ™ λ‘œλ“œ
  • CNN + GRU λͺ¨λΈ: μ‹œν€€μŠ€ λ°μ΄ν„°μ—μ„œ ν”Όλ‘œλ„ 예츑
  • μžλ™ ν•™μŠ΅ μŠ€μΌ€μ€„λ§: λ§€μ£Ό μΌμš”μΌ μžμ • μžλ™ λͺ¨λΈ μ—…λ°μ΄νŠΈ
  • 쀑볡 λ°©μ§€: 이미 ν•™μŠ΅λœ μ„Έμ…˜ 데이터 μžλ™ μ œμ™Έ
  • TFLite λ³€ν™˜: λͺ¨λ°”일 배포λ₯Ό μœ„ν•œ TFLite λͺ¨λΈ μžλ™ 생성 (ν•„μˆ˜)

πŸ“¦ μ‹€ν–‰ 방법

Docker μ‚¬μš© (ꢌμž₯)

# 이미지 λΉŒλ“œ
docker build -t musclecare-train-ai .

# μ‹€ν–‰
docker run musclecare-train-ai

둜컬 μ‹€ν–‰ (Python 3.10 ν•„μš”)

# Python 3.10 확인
python3.10 --version

# νŒ¨ν‚€μ§€ μ„€μΉ˜
python3.10 -m pip install -r requirements.txt

# μ‹€ν–‰
python3.10 start.py

λ˜λŠ” 슀크립트 μ‚¬μš©:

./run_local.sh

πŸ”„ 전체 ν”Œλ‘œμš°

  1. 데이터 λ‘œλ“œ: load_dataset.py둜 Hugging Face 데이터셋 λ‘œλ“œ
  2. λͺ¨λΈ ν•™μŠ΅: train_e2e.py둜 CNN + GRU λͺ¨λΈ ν•™μŠ΅
  3. λͺ¨λΈ μ €μž₯: ν•™μŠ΅λœ λͺ¨λΈμ„ ./model/fatigue_net_v2.pt에 μ €μž₯ (PyTorch state_dict ν˜•μ‹)
  4. TFLite λ³€ν™˜: convert_tflite.py둜 TFLite λͺ¨λΈ 생성 β†’ ./model/fatigue_net_v2.tflite

πŸ“ 파일 ꡬ쑰

  • load_dataset.py: Hugging Face 데이터셋 λ‘œλ“œ
  • train_e2e.py: CNN + GRU λͺ¨λΈ ν•™μŠ΅ (PyTorch state_dict ν˜•μ‹μœΌλ‘œ μ €μž₯)
  • convert_tflite.py: PyTorch β†’ TFLite λ³€ν™˜
  • train_scheduler.py: μžλ™ ν•™μŠ΅ μŠ€μΌ€μ€„λŸ¬
  • start.py: μžλ™ ν•™μŠ΅ μŠ€μΌ€μ€„λŸ¬ μ‹œμž‘ 슀크립트
  • app.py: FastAPI μ• ν”Œλ¦¬μΌ€μ΄μ…˜ (λ‚˜μ€‘μ— κ΅¬ν˜„ μ˜ˆμ •)

πŸ”§ μš”κ΅¬μ‚¬ν•­

  • Python 3.10 (TFLite λ³€ν™˜ ν•„μˆ˜)
  • PyTorch 2.0+
  • ONNX, ONNX-TF, TensorFlow (TFLite λ³€ν™˜μš©)

πŸ“ λͺ¨λΈ μ €μž₯ μœ„μΉ˜

  • PyTorch λͺ¨λΈ: ./model/fatigue_net_v2.pt (state_dict ν˜•μ‹)
  • TFLite λͺ¨λΈ: ./model/fatigue_net_v2.tflite (λͺ¨λ°”일 배포용, ν•„μˆ˜)
  • ν•™μŠ΅ μƒνƒœ: ./model/training_state.json

⚠️ μ€‘μš” 사항

  • TFLite λ³€ν™˜μ€ ν•„μˆ˜μž…λ‹ˆλ‹€ (λͺ¨λ°”일 λ””λ°”μ΄μŠ€μ—μ„œ μ‹€ν–‰ ν•„μš”)
  • λͺ¨λΈμ€ λ°˜λ“œμ‹œ PyTorch state_dict ν˜•μ‹μœΌλ‘œ μ €μž₯λ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€ (TorchScript ν˜•μ‹ λΆˆκ°€)
  • Python 3.10 이상이 ν•„μš”ν•©λ‹ˆλ‹€ (TFLite λ³€ν™˜ νŒ¨ν‚€μ§€ ν˜Έν™˜μ„±)

πŸ”„ μžλ™ ν•™μŠ΅ μŠ€μΌ€μ€„

  • μ‹€ν–‰ μ‹œκ°„: λ§€μ£Ό μΌμš”μΌ μžμ • (00:00)
  • 쀑볡 λ°©μ§€: training_state.json에 μ €μž₯된 μ„Έμ…˜ IDλŠ” μžλ™ μ œμ™Έ
  • λͺ¨λΈ 버전: μžλ™ 증가
  • TFLite λ³€ν™˜: ν•™μŠ΅ ν›„ μžλ™ μˆ˜ν–‰