Tensorflow Workflow

DandiLesmana
4 min readJun 13, 2024

--

Cara TensorFlow bekerja adalah dengan membuat directed acyclic graph (DAG) sebagai representasi dari komputasi yang akan Anda lakukan. Graph (atau graf), sebenarnya adalah struktur data, terdiri dari objek tf.Operation sebagai representasi dari unit komputasi dan objek tf.Tensor sebagai representasi dari unit data (berupa array). Graph mengalir (flow) dari satu operasi ke operasi yang lainnya.

Graf merupakan struktur data. Hal ini menyebabkan kita dapat menyimpan, menjalankan, dan memulihkan (restore) graf tersebut tanpa kode orisinil Python.

Konsep eksekusi komputasi TensorFlow sebagai graf disebut dengan graph execution. Pada TensorFlow versi 1.x, graph execution menjadi prioritas utama karena kecepatan, efisien, dan fleksibilitas yang lebih unggul. Namun, pada TensorFlow 2.x hal tersebut tidak lagi dijadikan prioritas. TensorFlow 2.x lebih mengutamakan eager execution(konsep yang merujuk pada proses eksekusi secara dinamis, mirip seperti cara Python biasa beroperasi).

Visualisasi TensorFlow graph

Gambar di atas merupakan contoh TensorFlow graph yang merepresentasikan dua layer neural networks.

MatMul, add, MatMul_1, dan add_1 adalah nodes yang merepresentasikan operasi matematika, yaitu matrix multiplication (perkalian matriks) dan addition (penjumlahan). Selanjutnya, matmul_r…, add_read…, matmul_…, dan add_1_re… adalah input data berupa array.

Jika Anda perhatikan sekilas, data-data yang menjadi input tersebut ditunjukkan dengan kata “scalar”. Scalar adalah array dengan nol dimensi.

Selanjutnya, garis-garis yang menghubungkan nodes disebut sebagai edge. Edge dalam TensorFlow merepresentasikan data array (input dan output) yang mengalir (flow) antar operasi pertama hingga menghasilkan output.

Jika ditelisik dari bawah hingga selesai, operasi pertama dalam graf di atas adalah kalkulasi matriks (MatMul) yang mengalkulasikan data array sebagai inputnya, lalu output-nya mengalir ke operasi selanjutnya, yaitu penjumlahan.

Pada tahap ini, graf tersebut ingin menambahkan output kalkulasi MatMul dengan data array baru bernama “add_read…”. Berlanjut lagi, data array tersebut terus mengalir dengan masuk ke tahapan activation function, yaitu ReLu layer. Sampai di sini, layer pertama neural networks telah selesai dilewati.

Kini, data tersebut mengalir menuju layer kedua neural network dengan mengulang operasi yang sama, yaitu melakukan operasi matriks kalkulasi, penjumlahan, dan activation function ReLu.

Hierarki TensorFlow API

Saat menjalankan kode TensorFlow, Anda berinteraksi dengan API yang ada di dalamnya.

TensorFlow API memiliki hierarki yang dapat Anda gunakan dari tingkat rendah hingga tinggi. Mari kita mulai dari tingkat terendah TensorFlow API.

Abstraksi tingkat rendah TensorFlow API adalah lapisan yang mengimplementasikan kode dengan berbagai platform. Seorang developer jarang menyentuh lapisan ini,kecuali seorang teknisi dari produsen perangkat keras dan memungkinkan untuk mengakselerasi perangkat keras tersebut supaya optimal bagi TensorFlow.

Lapisan kedua API adalah TensorFlow C++ API.

Umumnya, lapisan ini digunakan untuk membuat operasi TensorFlow secara custom. Anda bisa membuat operasi khusus dalam C++, lalu mendaftarkannya sebagai operasi TensorFlow. Anda dapat membaca lebih dalam terkait pembuatan custom operasi TensorFlow pada laman ini.

Hal ini memberikan gambaran bahwa TensorFlow bersifat extendable yang artinya TensorFlow dapat “dipanjangkan” atau ditambah operasinya secara custom.

Lapisan ketiga adalah Python API.

Pada lapisan ketiga, Anda dapat melakukan operasi numerik menggunakan kode-kode yang telah tersedia dalam bahasa pemrograman Python. Beberapa operasi yang dapat digunakan adalah penjumlahan (add), pengurangan (substract), perkalian matriks, mengubah dimensi array, membuat variabel, tensor, dan sebagainya.

Selain Python API yang secara spesifik digunakan untuk komputasi numerik, ada juga lapisan berikutnya, yaitu TensorFlow API. Ini digunakan untuk melakukan aktivitas pembuatan model machine learning, seperti model artificial neural networks (jaringan saraf tiruan).

Lapisan keempat umumnya digunakan untuk pemrosesan deep learning. Misalnya, Anda ingin melakukan evaluasi model menggunakan root means squared error (RMSE) maka tf.metrics bisa digunakan.

Lapisan keempat memberikan modul Python yang dapat membantu Anda untuk membangun custom model neural networks.

Lapisan terakhir adalah high-level API yang membantu Anda untuk melakukan distributed training, data processing, model definition, compilation, dan training.

Salah satu contoh high-level TensorFlow API adalah tf.estimator yang mampu mengenkapsulasi proses training, evaluation, prediction, dan export untuk melakukan serving model.

Sederhananya, tingkat ini memberikan kemudahan untuk Anda menjalankan model hanya menggunakan beberapa baris kode saja. Contohnya, Anda bisa menggunakan tf.estimator untuk membuat model linear.

  1. inear_est = tf.estimator.LinearClassifier(feature_columns=feature_columns)
  2. linear_est.train(train_input_fn)
  3. result = linear_est.evaluate(eval_input_fn)

Model linear adalah jenis model matematika yang digunakan untuk mencari hubungan antara satu atau lebih variabel. Pada contoh kode di atas, kita melakukan training model linear menggunakan TensorFlow Python. Dokumentasi detail terkait tf.estimator dapat dilihat pada laman ini.

--

--