Skip to content

Latest commit

Β 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Automated Waste Classification System

Sistem klasifikasi citra sampah otomatis (3 kelas) menggunakan EfficientNetV2-S + Stratified 5-Fold Cross-Validation, sesuai SDLC proyek.

Kode Kategori
0 Recyclable
1 Electronic
2 Organic

Dari clone sampai running

1. Prasyarat

  • Python 3.10+
  • Git
  • GPU NVIDIA opsional (CPU tetap bisa, gunakan mode cepat)

2. Clone repository

Ganti <REPO_URL> dengan URL Git repository Anda:

git clone <REPO_URL>
cd waste-python

3. Install dependencies

python -m venv .venv

Aktifkan virtual environment:

# Windows
.venv\Scripts\activate

# Linux / macOS
source .venv/bin/activate

Lalu install paket proyek (termasuk dependency development untuk pytest):

pip install -U pip
pip install -e ".[dev]"

4. Siapkan dataset

Citra tidak ikut di-commit. Letakkan dataset resmi sesuai layout di bagian Data layout:

  • Isi data/train/ (citra berlabel per kelas)
  • Isi data/test/ (citra uji tanpa label)
  • Pastikan data/template.csv ada (sudah termasuk di repository)

5. Verifikasi instalasi

pytest

Jika semua test lolos, environment siap dipakai.

6. Train dan predict (mode cepat)

Untuk menjalankan pipeline pertama kali (ramah CPU):

python scripts/train.py --config configs/fast.yaml
python scripts/predict.py --config configs/fast.yaml

Hasil yang diharapkan:

  • Checkpoint di outputs/models/ (mis. fold_0.pth, fold_1.pth)
  • Submission di outputs/submissions/submission.csv

Untuk training penuh (5-fold) dan inferensi final, lihat bagian Training dan Inferensi di bawah.

Google Colab

Jalankan pipeline di T4 GPU Colab memakai disk lokal runtime (/content) β€” tanpa Google Drive.

  1. Buka notebooks/colab_run.ipynb di Colab (File β†’ Upload notebook, atau Open in Colab jika repo sudah di GitHub).
  2. Runtime β†’ Change runtime type β†’ Hardware accelerator β†’ T4 GPU.
  3. Isi REPO_URL, clone, lalu pip install -e ..
  4. Siapkan dataset ke /content/waste-python/data/ lewat upload ZIP atau unduh URL (layout sama seperti Data layout).
  5. Train & predict (default.yaml β€” batch T4-safe, device auto CPU/GPU):
python scripts/train.py --config configs/default.yaml
python scripts/predict.py --config configs/default.yaml
  1. Unduh outputs/submissions/submission.csv (dan checkpoint jika perlu) sebelum disconnect.

Runtime Colab ephemeral: data, checkpoint, dan submission hilang saat sesi berakhir. Jangan andalkan penyimpanan lokal Colab untuk jangka panjang.

Data layout

Letakkan dataset resmi di folder berikut (citra tidak di-commit):

data/
β”œβ”€β”€ train/
β”‚   β”œβ”€β”€ 0_Recyclable/   # atau 0/ / Recyclable/
β”‚   β”œβ”€β”€ 1_Electronic/   # atau 1/ / Electronic/
β”‚   └── 2_Organic/      # atau 2/ / Organic/
β”œβ”€β”€ test/    # 1.458 citra tanpa label (nama mengikuti id di template)
└── template.csv   # kolom: id,predicted

Output prediksi mengisi kolom predicted dengan nilai 0, 1, atau 2.

Training

Full run (5-fold, kualitas final). Device otomatis: GPU jika ada, else CPU. Batch T4-safe (train=8, infer=16):

python scripts/train.py --config configs/default.yaml

Mode cepat di CPU (2-fold, subset, resolusi lebih kecil β€” untuk iterasi):

python scripts/train.py --config configs/fast.yaml

Checkpoint per fold disimpan di outputs/models/fold_{0..4}.pth (atau fold_0/1 untuk mode cepat). Early stopping menghentikan fold jika macro F1 validasi tidak naik.

Inferensi & submission

Memakai semua checkpoint fold_*.pth yang ada di outputs/models/ (1 fold atau ensemble penuh).

python scripts/predict.py --config configs/default.yaml

Mode cepat (batch lebih besar; cocok setelah train dengan fast.yaml):

python scripts/predict.py --config configs/fast.yaml

Menghasilkan outputs/submissions/submission.csv lalu menjalankan QA validasi.

Tests

pytest

Guardrails

  • Data uji hanya dipakai saat inferensi (predict.py).
  • Tidak ada akses label test selama training.
  • Seed dikunci untuk reproduktifitas.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages