Membangun Dataset dengan model CNN(Convolutional Neural Network) untuk Mengklasifikasi objek pada gambar.

Jihar Al Gifari
3 min readMar 31, 2021

--

Dataset merupakan kumpulan data yang sudah diolah dengan metode metode tertentu yang digunakan sebagai sumber referensi. Misal saja dalam kasus mengidentifikasi objek dalam gambar, agar aplikasi tersebut kenal dengan objek yang ada pada gambar kita harus menyiapkan datanya terlebih dahulu lalu kita ubah dengan format data khusus melalui metode metode tertentu, proses penyiapan dan pengolahan data tersebut kita namakan training data.

CNN(Convolutional Neural Network) merupakan salah satu metode yang digunakan untuk mengklasifikasikan objek dengan algoritma yang dibuat hampir mirip dengan cara kerja otak manusia. Dimana model algoritma ini digunakan untuk melakukan tugas klasifikasi langsung melalui gambar, video, teks, ataupun suara. CNN ini juga merupakan salah satu algoritma yang paling populer di dalam teknik Deep Learning.

Langkah — langkah membangun dataset dengan python.

Pada tutorial ini saya akan lebih fokus membahas membangun dataset, berikut adalah tahapan awal.

  • Mebuat struktur projek.
  • Menyiapkan gambar, lalu
  • Mengelompokkan gambar tersebut berdasarkan nama.
  • Membuat script dengan python untuk training data.

Membuat struktur projek

Struktur proyek merupakan kerangka awal, tujuannya agar membuat projek kita lebih rapi dan memudahkan kita dalam pengembangan. berikut struktur projek saya.

Menyiapkan gambar, lalu Mengelompokkan gambar tersebut berdasarkan nama.

Gambar ini merupakan kumpulan data yang digunakan sebagai sumber pengetahuan dari program kita, gambar gambar tersebut kita kelompokkan berdasarkan jenisnya, misal gambar anjing, kita kelompokkan dalam folder anjing tujuannya agar memudahkan dalam mengelolanya melalui script.

Membuat script dengan python untuk training data.

langkah — langkah membuat virtual environment.

pastikan kita berada diposisi root projek kita, lalu jalankan perintah berikut.

python3 -m venv venv

setelah berhasil akan ditandai dengan folder venv pada root projek. untuk mengaktifkan virtual environment berikut adalah perintahnya.

. ./venv/bin/activate

Membuat fungsi training.

Membaca data gambar melalui fungsi image_dataset_from_directory

Membuat model

Model terdiri dari tiga blok convolution dengan layer max pool pada masing masing conv. Pooling layer adalah lapisan yang mengurangi dimensi dari feature map atau lebih dikenal dengan langkah untuk downsampling, sehingga mempercepat komputasi karena parameter yang harus diupdate semakin sedikit dan mengatasi overfitting. Flatten digunakan untuk membentuk ulang fitur (reshape feature map) menjadi sebuah vector agar bisa kita gunakan sebagai input dari fully-connected layer.

Menyusun dan menyimpan model

model.compile() digunakan untuk menyusun/compile model dengan algoritma adam dan fungsi loss SparseCategoricalCrossentropy.

Adam is an optimization algorithm that can be used instead of the classical stochastic gradient descent procedure to update network weights iterative based in training data.Adam was presented by Diederik Kingma from OpenAI and Jimmy Ba from the University of Toronto in their 2015 ICLR paper (poster) titled “Adam: A Method for Stochastic Optimization“. I will quote liberally from their paper in this post, unless stated otherwise.The algorithm is called Adam. It is not an acronym and is not written as “ADAM”.

Menyimpan Labels object

train_ds.class_names merupakan list nama objek. pickle.dump() digunakan untuk menyimpan data kedalam bentuk file.

Reference

--

--