Data: Dataset Gambar Hewan Sintetis

Proyek ini memakai dataset buatan, bukan foto hewan nyata.

Cara data diperoleh #

  • Berkas hewan_sintetis.npz dibuat oleh skrip generate_data.py di folder ini: 96 gambar grayscale 16x16 (32 per kelas: kucing, ikan, burung) yang digambar dari pola geometris — kepala bulat dengan telinga segitiga untuk kucing, elips dengan ekor untuk ikan, badan bulat dengan paruh untuk burung.
  • Setiap gambar diberi geseran acak +/-2 piksel, skala 0.85-1.15, intensitas 0.75-0.95, dan derau Gaussian, dengan seed tetap sehingga hasil identik di setiap eksekusi.
  • Regenerasi: python3 data/generate_data.py (menimpa berkas npz dengan isi yang sama persis).

Mengapa bukan foto nyata #

Dataset foto hewan populer berukuran besar: Dogs vs. Cats di Kaggle berisi 25.000 gambar (ratusan megabyte) dan Michael/Simpson perlu diunduh manual. Unduhan dan pelatihan lama tidak diperlukan untuk memahami alur proyek CNN — transfer learning, evaluasi, dan pola kodenya sama. Dataset sintetis juga bernilai tambah: kesalahan prediksi bisa ditelusuri ke pola geometris yang terlihat langsung.

Mengganti dengan dataset nyata #

Bila ingin melanjutkan ke data nyata, pola kodenya tinggal disesuaikan:

  1. Unduh Dogs vs. Cats dari Kaggle atau dataset kecil serupa.
  2. Susun folder per kelas (data/train/kucing/, data/train/ikan/, …).
  3. Ganti muat_dataset() di src/dataset.py dengan torchvision.datasets.ImageFolder plus transform Resize dan ToTensor.
  4. Perbesar resolusi masukan (misal 64x64) dan sesuaikan arsitektur CNN.