Voorbeeld 2 Model


Skommel data

Skommel altyd data voor opleiding.

Wanneer 'n model opgelei word, word die data in klein stelle (batches) verdeel. Elke bondel word dan na die model gevoer. Skommeling is belangrik om te verhoed dat die model weer dieselfde data kry. As dieselfde data twee keer gebruik word, sal die model nie in staat wees om die data te veralgemeen en die regte uitvoer te gee nie. Skommeling gee 'n beter verskeidenheid data in elke bondel.

Voorbeeld

tf.util.shuffle(data);

TensorFlow Tensors

Om TensorFlow te gebruik, moet invoerdata na tensordata omgeskakel word:

// 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]);

Data Normalisering

Data moet genormaliseer word voordat dit in 'n neurale netwerk gebruik word.

'n Reeks van 0 - 1 wat min-maks gebruik, is dikwels die beste vir numeriese data:

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));

Tensorvloeimodel

'n Masjienleermodel is 'n algoritme wat uitset vanaf insette produseer.

Hierdie voorbeeld gebruik 3 reëls om 'n ML-model te definieer :

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

Opeenvolgende ML-model

const model = tf.sequential(); skep 'n Sequential ML Model .

In 'n opeenvolgende model vloei die inset direk na die uitset. Ander modelle kan veelvuldige insette en veelvuldige uitsette hê. Sequential is die maklikste ML-model. Dit laat jou toe om 'n model laag vir laag te bou, met gewigte wat ooreenstem met die volgende laag.

TensorFlow-lae

model.add() word gebruik om twee lae by die model te voeg.

tf.layer.dense is 'n laagtipe wat in die meeste gevalle werk. Dit vermenigvuldig sy insette met 'n gewigmatriks en voeg 'n getal (vooroordeel) by die resultaat.

Vorms en eenhede

inputShape: [1] want ons het 1 invoer (x = kamers).

eenhede: 1 definieer die grootte van die gewigmatriks: 1 gewig vir elke invoer (x-waarde).


Samestelling van 'n model

Stel die model saam met 'n gespesifiseerde optimaliseerder en verliesfunksie :

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

Die samesteller is ingestel om die sgd optimizer te gebruik. Dit is eenvoudig om te gebruik en redelik effektief.

meanSquaredError is die funksie wat ons wil gebruik om modelvoorspellings en ware waardes te vergelyk.