Implementasi Deep Learning pada Accelerator

Maulida Yasmin

Sosial Media


3 orang menyukai ini
Suka

Summary

Deep learning merupakan salah satu cabang dari machine learning yang memiliki keahlian untuk menyelesaikan tugas-tugas yang kompleks seperti pengenalan wajah, klasifikasi gambar, dan bahkan pengenalan suara dan teks. Namun, pelatihan model deep learning seringkali membutuhkan waktu yang lama dan sumber daya komputasi yang cukup besar. Oleh karena itu, penggunaan accelerator seperti GPU atau TPU dapat sangat membantu untuk mempercepat proses pelatihan model.

Pada project ini, akan dijelaskan cara menggunakan accelerator pada deep learning menggunakan bahasa Python di Google Collaboratory. Disini akan digunakan accelerator GPU untuk melakukan pelatihan dan evaluasi model deep learning pada dataset yang diberikan. Selain itu, akan dilakukan perbandingan performa model yang dilatih dengan accelerator dan tanpa accelerator.

Description

Persiapan

  • Buka Google Collaboratory dan buat notebook baru.
  • Pilih "Runtime" di menu atas, lalu pilih "Ubah jenis runtime".
  • Pilih accelerator yang ingin digunakan, yaitu "GPU" atau "TPU". 
  • Klik "Simpan" untuk menyimpan perubahan.

Import Library dan Persiapan Data

  • Import library Tensorflow untuk Deep Learning.
  • Import library time untuk menghitung waktu eksekusi.
  • Import library matplotlib.pyplot untuk plotting hasil performa model dan perbandingan waktu eksekusi antara menggunakan accelerator (GPU) dan tanpa accelerator (CPU).

Persiapan data dilakukan sebagai berikut.

  • Unduh dataset MNIST, yang berisi gambar angka tulisan tangan.
  • Bagi dataset menjadi 2 bagian, yaitu training set dan test set.
  • Lakukan normalisasi data dengan mengubah nilai pixel dari 0-255 menjadi 0-1.

Membuat Model dan Compile Model

Model yang dibuat memiliki struktur sebagai berikut:

  1. Layer konvolusi dengan 32 filter ukuran 3x3 dan fungsi aktivasi ReLU. Input gambar harus memiliki ukuran 28x28 piksel dan hanya satu saluran warna (grayscale).
  2. Layer Max Pooling dengan ukuran filter 2x2 untuk mengurangi ukuran gambar.
  3. Layer flatten untuk meratakan gambar menjadi vektor satu dimensi.
  4. Layer Dense dengan 128 unit dan fungsi aktivasi ReLU.
  5. Layer Dropout dengan dropout rate 0.2 untuk mencegah overfitting.
  6. Layer Dense dengan 10 unit dan fungsi aktivasi softmax untuk melakukan klasifikasi ke dalam 10 kelas yang berbeda.

Setelah model dibuat, kompilasi dilakukan dengan menggunakan optimizer 'adam', loss function 'sparse_categorical_crossentropy', dan metric 'accuracy'. Hal ini berarti model ini akan melakukan training menggunakan metode adam, menghitung loss menggunakan categorical crossentropy, dan menampilkan metrik akurasi selama training dan evaluasi.

Pelatihan, Evaluasi Performa dan Perbandingan Waktu Eksekusi dengan Accelerator

Gambar diatas merupakan kode program training dan evaluasi dari model neural network yang telah dibuat serta outputnya. Output tersebut menjelaskan beberapa hal sebagai berikut:

  1. Terdapat 5 epoch atau iterasi training pada model tersebut.
  2. Pada setiap epoch, terdapat beberapa informasi yang ditampilkan seperti loss function, akurasi pada data training, loss function, dan akurasi pada data validasi (dalam hal ini val_loss dan val_accuracy).
  3. Pada akhir epoch terakhir (epoch ke-5), dilakukan evaluasi model pada data uji dan menghasilkan akurasi sebesar 0.9877 dan loss function sebesar 0.0363.
  4. Diberikan juga informasi mengenai waktu pelatihan dan evaluasi model menggunakan GPU, yaitu waktu pelatihan 19.17 detik dan waktu evaluasi 0.80 detik.

Pelatihan, Evaluasi Performa dan Perbandingan Waktu Eksekusi tanpa Accelerator

Output pada gambar diatas adalah hasil training dan evaluasi model neural network pada data yang sama dengan output sebelumnya. Namun, ini dieksekusi tanpa accelerator artinya perbedaannya terletak pada penggunaan CPU sebagai pengolah data, berbeda dengan output sebelumnya yang menggunakan GPU. Output tersebut menjelaskan beberapa hal sebagai berikut:

  1. Terdapat 5 epoch atau iterasi training pada model tersebut.
  2. Pada setiap epoch, terdapat beberapa informasi yang ditampilkan seperti loss function, akurasi pada data training, loss function, dan akurasi pada data validasi (dalam hal ini val_loss dan val_accuracy).
  3. Pada akhir epoch terakhir (epoch ke-5), dilakukan evaluasi model pada data uji dan menghasilkan akurasi sebesar 0.9876 dan loss function sebesar 0.0410.
  4. Diberikan juga informasi mengenai waktu pelatihan dan evaluasi model menggunakan CPU, yaitu waktu pelatihan 20.89 detik dan waktu evaluasi 1.36 detik.

Meskipun waktu pelatihan dan evaluasi pada CPU lebih lambat dibandingkan dengan GPU, namun output tersebut tetap menunjukkan hasil akurasi dan loss function yang baik pada data uji. Hal ini menunjukkan bahwa penggunaan CPU masih dapat digunakan untuk melatih dan melakukan evaluasi model neural network dengan hasil yang memuaskan.

Plotting Performa Model dan Perbandingan Waktu Eksekusi

Selanjutnya dilakukan plotting untuk melihat gambaran dari hasil performa maupun perbandingan waktu eksekusi model. Sebelum melakukan plotting, terlebih dahulu definisikan ‘history’ sebagai variabel untuk menyimpan hasil trainning model.

Kesimpulan

Pada hasil perbandingan performa model yang dilatih dengan accelerator dan tanpa accelerator dan mendapatkan menunjukkan bahwa penggunaan accelerator dapat mempercepat proses pelatihan dan evaluasi model secara signifikan. Proses pelatihan model menggunakan deep learning Convolutional Neural Network (CNN) yang dilatih dengan dataset gambar untuk melakukan klasifikasi. Selain itu, dilakukan visualisasi hasil pelatihan model dengan melakukan plotting performa model menggunakan data training dan validation accuracy serta data training dan validation loss. 

Secara keseluruhan, project ini memberikan pemahaman yang lebih baik tentang cara menggunakan accelerator pada deep learning dan manfaatnya dalam mempercepat proses pelatihan model. Diharapkan project ini dapat memberikan kontribusi yang bermanfaat untuk pengembangan teknologi deep learning di masa depan.

Informasi Course Terkait
  Kategori: Internet of Things / FPGA
  Course: FPGA - Accelerated Quantized Neural Networks