Ekosistem TensorFlow.js

DandiLesmana
5 min readJun 13, 2024

--

TensorFlow.js adalah sebuah open-source web ML library yang dapat dijalankan di mana pun selama JavaScript dapat melakukannya. Artinya, Anda dapat menggunakan TensorFlow pada client-side ataupun server-side.

TensorFlow.js dibangun berdasarkan TensorFlow Python, artinya banyak fungsionalitas yang ada pada TensorFlow Python dapat digunakan di lingkungan TensorFlow.js. Perbedaan utama antara TensorFlow.js dan TensorFlow Python adalah bahasa pemrograman yang digunakan, yakni JavaScript, serta Node.js sebagai environment runtime pada server-side.

Secara tradisional, developer menjalankan machine learning menggunakan bahasa pemrograman yang berfokus pada lingkungan back-end. Bahasa pemrograman, seperti Python, dapat berjalan di lingkungan cloud, di luar dari lingkungan aplikasi web atau client’s machine.

Namun, dengan hadirnya TensorFlow.js mampu membuat developer tidak hanya menjalankan machine learning dari server-side, tetapi juga client-side. Dengan tujuan tersebut, Anda bisa membangun aplikasi berbasis web yang di dalamnya terdapat implementasi machine learning secara langsung. Ini mirip seperti TensorFlow Lite, tetapi berada di lingkungan aplikasi web.

Keuntungan jika menggunakan TensorFlow.js untuk client-side adalah dari sisi keamanan karena tidak ada data yang dikirim ke server untuk klasifikasi. Selain itu, menggunakan langsung model pada aplikasi web, memberikan keuntungan akses instan, mengurangi biaya karena tidak memerlukan server, dan mempercepat cycle pengembangan (development cycles).

Namun, perlu diingat bahwa tantangan terbesar TensorFlow.js adalah perangkat keras yang digunakan oleh client atau pengguna sebagai eksekutor model tersebut. Perangkat yang digunakan pengguna tentu bervariasi dan bagi setiap penggunanya, hal ini akan berefek pada kecepatan menjalankan model machine learning.

TensorFlow.js hierarki

Lapisan teratas tentu model atau premade model. Premade model merupakan model-model yang sebelumnya telah dilatih untuk tujuan tertentu. KIta bisa menggunakan model-model yang sebelumnya telah dilatih oleh TensorFlow pada laman ini.

Lapisan kedua, yakni Layers API, adalah high-level API yang membantu developer dalam membuat custom model tanpa perlu melibatkan teknik matematis dalam machine learning.

Hal ini serupa dengan Keras API atau Python API pada hierarki arsitektur API dalam TensorFlow Python.

Untuk membuat model menggunakan Layers API, ada dua cara berikut.

  1. Sequential model
    Sequential model adalah model yang dibangun berdasarkan lapisan-lapisan yang disusun secara linear.

Kita dapat membuat sequential model dengan cara mendefinisikan layer di dalam fungsi sequential().

const model = tf.sequential({ layers: [
tf.layers.dense({inputShape: [784], units: 32, activation: 'relu'}),
tf.layers.dense({units: 10, activation: 'softmax'}),
]
});

dalam coode di atas kita membuat model machine learning secara sequential dengan adanya dua dense layer. Dense layer merupakan representasi neuron yang sering digunakan dalam pengembangan model neural network.

Sederhananya, neural network atau jaringan saraf tiruan adalah sistem komputer yang terinspirasi dari cara kerja otak manusia. Ini terdiri dari banyaknya unit kecil yang disebut neuron buatan. Neuron-neuron ini menerima input, mengolahnya, dan memberikan output.

Kita bisa juga menggunakan method add() untuk membuat sequential model.

const model = tf.sequential();
model.add(tf.layers.dense({inputShape: [784], units: 32, activation: 'relu'}));
model.add(tf.layers.dense({units: 10, activation: 'softmax'}));

dalam code di atas, kita membuat sequential model dengan cara menggunakan method add() untuk menambahkan dense layer ke fungsi tf.sequential().

2. Functional model
Selanjutnya adalah functional model. Untuk membuat functional model, Anda dapat menggunakan fungsi tf.model(). Perbedaan antara tf.model() dan tf.sequential() adalah kemampuan tf.model() dalam membuat lapisan arbitrary graph. Artinya, Anda dapat membuat struktur lapisan-lapisan yang berbeda dan menghubungkannya kembali.

Misalnya, Anda dapat menciptakan model dengan beberapa cabang yang memiliki lapisan-lapisan untuk pemrosesan data berbeda, lalu menggabungkannya kembali.

Dengan kemampuan tersebut, Anda dapat membuat model yang lebih kompleks.

Berikut adalah contoh kode untuk membuat functional model.

// Membuat lapisan arbitrary graph dengan menghubungkannya via method apply().const input = tf.input({shape: [784]});
const dense1 = tf.layers.dense({units: 32, activation: 'relu'}).apply(input);
const dense2 = tf.layers.dense({units: 10, activation: 'softmax'}).apply(dense1);
const model = tf.model({inputs: input, outputs: dense2});

Pada kode di atas, kita menggunakan tf.input sebagai layer pertama. Selanjutnya, kita memanggil apply() di setiap layernya untuk menghubungkannya dengan layer lainnya dan menghasilkan output.

Lapisan selanjutnya adalah Core/Ops API yang termasuk low-level API. Ops API membuat developer dapat bekerja untuk menerapkan konsep matematis secara langsung, seperti aljabar linear.

Umumnya, para developer akan menggunakan Layers API terlebih dahulu untuk membuat model. Namun, jika teknik matematika sangat diperlukan, misalnya kebutuhan penelitian oleh para peneliti, kita dapat menggunakan API ini untuk memaksimalkan fleksibilitas dan kontrol.

Berikut adalah contoh kode untuk membuat model menggunakan Core API.

// Membuat Tensor dengan berat (weight) dan bias yang acak untuk dua dense layer.
const w1 = tf.variable(tf.randomNormal([784, 32]));
const b1 = tf.variable(tf.randomNormal([32]));
const w2 = tf.variable(tf.randomNormal([32, 10]));
const b2 = tf.variable(tf.randomNormal([10]));

function model(x) {
return x.matMul(w1).add(b1).relu().matMul(w2).add(b2).softmax();
}

Pada kode di atas, kita mendefinisikan model neural network dengan dua dense layer. Setiap lapisan memiliki bobot dan bias yang diinisialisasi secara acak.

Jika dilihat sekilas, lapisan Core API dibangun berdasarkan tensor dan menghasilkan tensor. Mirip seperti penjelasan graf pada materi awal kita. Ingat bahwa tf.variable adalah fungsi untuk membuat tensor dengan nilai yang dapat berubah.

Lapisan terakhir dalam visualisasi TensorFlow.js APIs adalah client dan server.

Gambar tersebut merepresentasikan bahwa API TensorFlow.js dapat dijalankan pada lingkungan client (browser) ataupun server (Node.js).

Pada lingkungan client atau browser, TensorFlow.js mendukung penggunaan CPU, WebGL, dan WASM sebagai infrastruktur back-end yang digunakan. Sementara itu, pada server-side, TensorFlow.js mendukung penggunaan TensorFlow CPU dan TensorFlow GPU yang sama seperti dalam TensorFlow Python.

Sebelum mengakhiri modul, kita bisa menyimpulkan TensorFlow.js sebagai ekosistem yang mampu berjalan pada user-based karena bisa digunakan di lingkungan aplikasi web browser langsung dan server-based karena bisa digunakan di lingkungan server atau cloud.

Berkaitan dengan user-based dan server-based, keseluruhan ekosistem TensorFlow bisa dikelompokkan dalam kedua kategori tersebut. Berikut adalah petunjuknya.

cara yang dapat Anda lakukan untuk menjalankan model TensorFlow.js.

  1. Anda menjalankan model TensorFlow.js yang telah tersedia sebelumnya.
  2. Membuat model TensorFlow.js sendiri.
  3. Mengubah model TensorFlow dengan format SavedModel atau .h5 menjadi TensorFlow.js.

--

--