Repositori ini berisi kumpulan eksperimen Deep Learning menggunakan TensorFlow dan Keras. Proyek ini mendemonstrasikan evolusi arsitektur Neural Network, dimulai dari pengenalan angka tunggal dasar hingga pengenalan urutan angka (multi-digit) menggunakan teknik Synthetic Data Generation dan Multi-Output Models.
Repositori ini terdiri dari tiga skrip utama yang menunjukkan peningkatan kompleksitas model:
Single Digit Recognition (MNIST Original) Program ini adalah implementasi dasar klasifikasi gambar menggunakan dataset MNIST standar.
- Data: Gambar tunggal 28x28 piksel (0-9).
- Arsitektur: Simple Feed-Forward Neural Network (Flatten -> Dense Layer).
- Tujuan: Memahami preprocessing data, normalisasi, dan penggunaan layer Dense standar.
- Output: Probabilitas 10 kelas (angka 0-9).
Two-Digit Recognition (Synthetic Dataset) Program ini menggabungkan dua gambar MNIST secara horizontal untuk melatih model mengenali angka puluhan (00-99).
- Data: Dataset sintetis buatan sendiri (gabungan 2 gambar, ukuran 28x56 piksel).
- Arsitektur: Convolutional Neural Network (CNN) Sequential.
- Metode Klasifikasi: Menganggap setiap kombinasi dua digit sebagai satu kelas unik (Total 100 kelas, dari label 0 hingga 99).
- Fitur Utama: Penggunaan
Conv2D,MaxPooling, dan generator dataset kustom.
Three-Digit Recognition (Multi-Output Model) Program ini menggabungkan tiga gambar MNIST (misal: "459") dan menggunakan pendekatan arsitektur yang lebih efisien dengan Keras Functional API.
- Data: Dataset sintetis (gabungan 3 gambar, ukuran 28x84 piksel).
- Arsitektur: CNN dengan Branching Outputs (Multi-head).
- Metode Klasifikasi: Alih-alih membuat 1000 kelas (000-999), model memecah prediksi menjadi 3 output terpisah di mana setiap output memprediksi digitnya masing-masing (Digit 1, Digit 2, Digit 3).
- Fitur Utama: Functional API, Multi-loss training, dan efisiensi parameter dibandingkan pendekatan "1000 kelas".
Pastikan Anda telah menginstal Python dan pustaka yang diperlukan.
Install Dependencies:
pip install tensorflow numpy matplotlib