Tensorflow yang Dikembangkan oleh Google Brain Team

Tensorflow merupakan computational framework untuk membangun model machine learning seperti neural networks. Tensorflow dikembangkan oleh tim Google Brain untuk penggunaan Google internal dan dirilis di bawah lisensi open source Apache 2.0 pada 9 November 2015. Tensorflow adalah koleksi software open source untuk komputasi numerik yang menggunakan grafik aliran data (Toleubay, Y., James, A. P., 2020). Node pada grafik menunjukkan operasi matematika, sedangkan tepi-tepi grafik menunjukkan susunan data multidimensi (tensor) yang dikomunikasikan antartepi grafik. Arsitekturnya yang fleksibel dapat Anda manfaatkan untuk menerapkan komputasi ke satu atau beberapa CPU atau GPU pada desktop, server, atau perangkat seluler dengan cukup menggunakan satu API. Pada awalnya tensorflow dikembangkan oleh para peneliti dan engineer yang bekerja di Google Brain Team dalam organisasi riset Machine Intelligence Google, untuk keperluan menjalankan machine learning dan riset jaringan deep neural network. Penjelasan hirarki framework tensorflow terlihat pada gambar berikut ini:

Gambar: TensorFlow Toolkit Hierarchy

https://developers.google.com/machine-learning/crash-course/first-steps-with-tensorflow/toolkit

 Menurut Lu Yifei (2017) terdapat 4 komponen computional graph terkait tensorflow yaitu:

  • Operations

Dalam Tensorflow, node mewakili operasi. Node menggambarkan bagaimana data input mengalir melalui node dalam grafik yang diarahkan. Suatu operasi dapat memperoleh nol atau banyak input kemudian menghasilkan nol atau banyak output. Operasi semacam itu dapat berupa persamaan matematika, konstanta atau variabel. Konstanta diperoleh dengan operasi tanpa input dan menghasilkan output sama dengan konstanta yang sesuai. Demikian pula, variabel adalah operasi yang tidak mengambil input dan menghasilkan nilai saat ini dari variabel itu. Setiap operasi perlu diimplementasikan oleh kernelnya yang dapat dieksekusi pada perangkat keras seperti CPU atau GPU.

  • Tensors

Dalam tensorflow, data diwakili oleh tensor yang mengalir antara node dalam grafik komputasi. Tensor adalah array multi dimensi dengan tipe statis dan dimensi dinamis. Jumlah dimensi suatu tensor disebut pangkatnya. Bentuk tensor menggambarkan jumlah komponen di setiap dimensi. Dalam grafik komputasi, saat membuat operasi, tensor dikembalikan yang akan dikirim oleh tepi terarah sebagai input ke operasi yang terhubung.

  • Variables

Di seluruh evaluasi pelatihan, sebagian besar tensor tidak bertahan sedangkan kondisi model seperti bobot dan bias perlu dipertahankan. Karenanya variabel ditambahkan ke grafik komputasi sebagai operasi khusus. Variabel menghemat tensor yang disimpan secara terus-menerus dalam buffer memori. Nilai variabel dapat dimuat saat melatih dan mengevaluasi model. Saat membuat variabel, perlu diberikan tensor sebagai nilai awal pada saat eksekusi. Bentuk dan tipe data dari tensor itu secara otomatis menjadi bentuk dan tipe variabel.

Inisialisasi variabel harus dieksekusi sebelum pelatihan. Ini dapat dilakukan dengan menambahkan operasi untuk menginisialisasi semua variabel dan menjalankannya sebelum melatih jaringan.

  • Sessions

Eksekusi operasi dan evaluasi tensor dilakukan dalam konteks sesi. Sesi menggunakan Run rutin sebagai entri untuk mengeksekusi grafik komputasi. Dengan invocation run, input dimasukkan ke dalam proses komputasi seluruh grafik untuk mengembalikan output sesuai dengan definisi grafik. Grafik perhitungan akan dieksekusi berulang kali untuk melatih jaringan dengan menjalankan Run rutin. Sesi ini mendistribusikan operasi grafik ke perangkat seperti CPU atau GPU pada mesin yang berbeda sesuai dengan algoritma penempatan tensorflow yang akan disajikan nanti. Selain itu, urutan eksekusi node didefinisikan secara eksplisit, yaitu dependensi kontrol. Mengevaluasi model memastikan bahwa dependensi kontrol dipertahankan.

Tensorflow memiliki kelebihan antara lain:

  • Cepat

Performa merupakan faktor penting dalam mengembangkan dan menerapkan sistem machine learning. Karena itulah TensorFlow menggunakan XLA, pengkompilasi aljabar linear canggih yang membuat kode TensorFlow mampu berjalan secepat mungkin pada prosesor, CPU, GPU, TPU, dan platform hardware lain yang digunakan.

  • Fleksibel

Tensorflow menyediakan API level tinggi yang memudahkan dalam mengembangkan dan melatih model, serta kontrol level rendah untuk mendapatkan fleksibilitas dan performa yang maksimal.

  • Siap Produksi

Lingkup penggunaan tensorflow meliputi riset penyelidikan hingga produksi skala besar. Gunakan API tensorflow yang sama dan telah dipahami, baik untuk membuat jenis model baru maupun memproses jutaan permintaan dalam produksi.

Daftar Pustaka

Toleubay Y., James A.P. (2020) Getting Started with TensorFlow Deep Learning. In: James A. (eds) Deep Learning Classifiers with Memristive Networks. Modeling and Optimization in Science and Technologies, vol 14. Springer, Cham

Lu, Y. (2017). Deep neural networks and fraud detection. U.U.D.M. Project Report 2017:38

 

Penulis:
Astari Retnowardhani, PhD
Tiswa Ramdani, MMSI