File size: 4,685 Bytes
72b9a21
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
# πŸ“ 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