seedling-classifier / python-api /CARA_MELETAKKAN_FILE_MODEL.md
hanya70999's picture
Upload 13 files
72b9a21 verified
# πŸ“ Cara Meletakkan File Model Anda
## File yang Anda Punya (dari Google Drive)
Dari screenshot yang Anda berikan, Anda memiliki file-file ini:
```
Output_DenseNetSVM/
β”œβ”€β”€ svm_densenet201_rbf.joblib (5.2 MB)
β”œβ”€β”€ metadata.json (353 byte)
β”œβ”€β”€ features_train_densenet201.csv (81.1 MB)
β”œβ”€β”€ features_test_densenet201.csv (10.2 MB)
└── features_val_densenet201.csv (10.1 MB)
```
## βœ… File yang DIPERLUKAN untuk API
Hanya 2 file ini yang diperlukan:
1. βœ… **svm_densenet201_rbf.joblib** - Model SVM Anda
2. βœ… **metadata.json** - Informasi tentang kelas
File CSV features TIDAK diperlukan untuk inference/prediksi.
## πŸ“‚ Dimana Meletakkan File
### Struktur Folder yang Benar:
```
project/
└── python-api/
β”œβ”€β”€ app.py
β”œβ”€β”€ requirements.txt
β”œβ”€β”€ Dockerfile
β”œβ”€β”€ README.md
└── models/ ← Folder ini
β”œβ”€β”€ svm_densenet201_rbf.joblib ← Letakkan file JOBLIB di sini
└── metadata.json ← Letakkan file JSON di sini
```
### Langkah-Langkah:
#### 1. Download File dari Google Drive
Dari folder `Output_DenseNetSVM` di Google Drive Anda, download:
- `svm_densenet201_rbf.joblib`
- `metadata.json`
#### 2. Copy ke Folder models/
**Cara Manual:**
```
1. Buka folder project Anda
2. Masuk ke folder: python-api/models/
3. Copy kedua file ke folder ini
```
**Via Terminal:**
```bash
# Dari folder Downloads (atau dimana Anda download file)
cp svm_densenet201_rbf.joblib /path/to/project/python-api/models/
cp metadata.json /path/to/project/python-api/models/
```
**Via Google Colab (jika file masih di Drive):**
```python
# Mount Google Drive
from google.colab import drive
drive.mount('/content/drive')
# Copy files ke local download
import shutil
source_dir = "/content/drive/MyDrive/Output_DenseNetSVM"
dest_dir = "/content/models"
# Create folder
!mkdir -p /content/models
# Copy files
shutil.copy(f"{source_dir}/svm_densenet201_rbf.joblib",
f"{dest_dir}/svm_densenet201_rbf.joblib")
shutil.copy(f"{source_dir}/metadata.json",
f"{dest_dir}/metadata.json")
# Download ke komputer
from google.colab import files
files.download('/content/models/svm_densenet201_rbf.joblib')
files.download('/content/models/metadata.json')
```
#### 3. Verifikasi File Ada
**Windows:**
```cmd
dir python-api\models
```
**Mac/Linux:**
```bash
ls -lh python-api/models/
```
Anda harus melihat:
```
-rw-r--r-- 1 user staff 5.2M metadata.json
-rw-r--r-- 1 user staff 353B svm_densenet201_rbf.joblib
```
## πŸ“ Cek Isi metadata.json
Buka file `metadata.json` dan pastikan berisi:
```json
{
"class_names": ["3 Bulan", "6 Bulan", "9 Bulan"],
"img_size": 224
}
```
**PENTING:** Nama kelas harus sama persis dengan yang Anda gunakan saat training!
Jika `class_names` berbeda (misalnya dalam bahasa Inggris atau format lain), edit file ini sesuai dengan nama kelas asli Anda.
## πŸ§ͺ Test Local (Opsional)
Setelah file di tempat, test apakah model bisa diload:
```bash
cd python-api
# Install dependencies
pip install -r requirements.txt
# Run server
python app.py
```
Jika berhasil, Anda akan melihat:
```
Using device: cpu
βœ“ SVM model loaded successfully
βœ“ Metadata loaded: ['3 Bulan', '6 Bulan', '9 Bulan']
* Running on http://0.0.0.0:5000
```
## ❌ Jika Model Tidak Ditemukan
Jika Anda melihat:
```
⚠ Model file not found at models/svm_densenet201_rbf.joblib
Using simulation mode until model is uploaded
```
**Checklist:**
- [ ] File ada di folder `python-api/models/`
- [ ] Nama file PERSIS: `svm_densenet201_rbf.joblib` (case sensitive!)
- [ ] File tidak corrupt (coba download ulang jika perlu)
- [ ] Folder structure benar (lihat diagram di atas)
## πŸš€ Setelah File Siap
Sekarang Anda siap untuk deploy! Lanjutkan ke:
1. Baca `README.md` untuk instruksi deployment
2. Atau baca `DEPLOYMENT_GUIDE.md` untuk panduan lengkap
## πŸ’‘ Tips
1. **Backup File Model**: Selalu simpan backup di Google Drive
2. **Version Control**: Jangan commit file model ke git (sudah ada di .gitignore)
3. **Update Model**: Untuk update model, cukup replace file dan restart server
4. **Metadata**: Jika mengubah kelas, update metadata.json
## πŸ“ž Troubleshooting
### File terlalu besar untuk upload
- Gunakan Git LFS untuk file besar
- Atau upload langsung ke platform deployment (Hugging Face support large files)
### Format file salah
- Pastikan file dari `joblib.dump()`, bukan pickle
- Versi scikit-learn harus kompatibel
### Permission denied
- Check file permissions: `chmod 644 models/*.joblib`
- Pastikan Anda punya akses ke folder