Contoh 1 Model


Acak Data

Selalu acak data sebelum pelatihan.

Ketika model dilatih, data dibagi menjadi set kecil (batch). Setiap batch kemudian diumpankan ke model. Pengacakan penting untuk mencegah model mendapatkan data yang sama lagi. Jika menggunakan data yang sama dua kali, model tidak akan dapat menggeneralisasi data dan memberikan output yang tepat. Pengacakan memberikan variasi data yang lebih baik di setiap batch.

Contoh

tf.util.shuffle(data);

TensorFlow Tensor

Untuk menggunakan TensorFlow, data input perlu dikonversi ke data tensor:

// Map x values to Tensor inputs
const inputs = values.map(obj => obj.x);
// Map y values to Tensor labels
const labels = values.map(obj => obj.y);

// Convert inputs and labels to 2d tensors
const inputTensor = tf.tensor2d(inputs, [inputs.length, 1]);
const labelTensor = tf.tensor2d(labels, [labels.length, 1]);

Normalisasi Data

Data harus dinormalisasi sebelum digunakan dalam jaringan saraf.

Rentang 0 - 1 menggunakan min-max seringkali paling baik untuk data numerik:

const inputMin = inputTensor.min();
const inputMax = inputTensor.max();
const labelMin = labelTensor.min();
const labelMax = labelTensor.max();
const nmInputs = inputTensor.sub(inputMin).div(inputMax.sub(inputMin));
const nmLabels = labelTensor.sub(labelMin).div(labelMax.sub(labelMin));

Model Tensorflow

Model Machine Learning adalah algoritma yang menghasilkan output dari input.

Contoh ini menggunakan 3 baris untuk mendefinisikan Model ML :

const model = tf.sequential();
model.add(tf.layers.dense({inputShape: [1], units: 1, useBias: true}));
model.add(tf.layers.dense({units: 1, useBias: true}));

Model ML berurutan

const model = tf.sequential(); membuat Model ML Berurutan .

Dalam model sekuensial, input mengalir langsung ke output. Model lain dapat memiliki banyak input dan beberapa output. Sequential adalah model ML yang paling mudah. Ini memungkinkan Anda untuk membangun model lapis demi lapis, dengan bobot yang sesuai dengan lapisan berikutnya.

Lapisan TensorFlow

model.add() digunakan untuk menambahkan dua lapisan ke model.

tf.layer.dense adalah jenis lapisan yang berfungsi dalam banyak kasus. Ini mengalikan inputnya dengan matriks bobot dan menambahkan angka (bias) ke hasilnya.

Bentuk dan Satuan

inputShape: [1] karena kita memiliki 1 input (x = horsepower).

unit: 1 mendefinisikan ukuran matriks bobot: 1 bobot untuk setiap input (nilai x).


Menyusun Model

Kompilasi model dengan pengoptimal dan fungsi kerugian yang ditentukan:

model.compile({loss: 'meanSquaredError', optimizer:'sgd'});

Kompiler diatur untuk menggunakan pengoptimal sgd . Hal ini mudah digunakan dan cukup efektif.

meanSquaredError adalah fungsi yang ingin kita gunakan untuk membandingkan prediksi model dan nilai sebenarnya.