MuscleCare-Train-AI / README.md
Merry99's picture
Spaces용 μ½”λ“œλ§Œ 포함 (λͺ¨λΈ 파일 μ œμ™Έ)
2b83ee8
---
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 μ‚¬μš© (ꢌμž₯)
```bash
# 이미지 λΉŒλ“œ
docker build -t musclecare-train-ai .
# μ‹€ν–‰
docker run musclecare-train-ai
```
### 둜컬 μ‹€ν–‰ (Python 3.10 ν•„μš”)
```bash
# Python 3.10 확인
python3.10 --version
# νŒ¨ν‚€μ§€ μ„€μΉ˜
python3.10 -m pip install -r requirements.txt
# μ‹€ν–‰
python3.10 start.py
```
λ˜λŠ” 슀크립트 μ‚¬μš©:
```bash
./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 λ³€ν™˜: ν•™μŠ΅ ν›„ μžλ™ μˆ˜ν–‰