Voorbeeld 1 Model
Gegevens in willekeurige volgorde
Schud gegevens altijd voordat u gaat trainen.
Wanneer een model wordt getraind, worden de gegevens opgedeeld in kleine sets (batches). Elke batch wordt vervolgens aan het model toegevoerd. Shuffelen is belangrijk om te voorkomen dat het model dezelfde gegevens opnieuw krijgt. Als dezelfde gegevens twee keer worden gebruikt, kan het model de gegevens niet generaliseren en de juiste uitvoer geven. Shuffelen geeft een betere variëteit aan gegevens in elke batch.
Voorbeeld
tf.util.shuffle(data);
TensorFlow Tensors
Om TensorFlow te gebruiken, moeten invoergegevens worden geconverteerd naar tensorgegevens:
// 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]);
Gegevens normalisatie
Gegevens moeten worden genormaliseerd voordat ze in een neuraal netwerk worden gebruikt.
Een bereik van 0 - 1 met min-max is vaak het beste voor numerieke gegevens:
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));
Tensorflow-model
Een Machine Learning Model is een algoritme dat output produceert uit input.
In dit voorbeeld worden 3 regels gebruikt om een ML-model te definiëren :
const model = tf.sequential();
model.add(tf.layers.dense({inputShape: [1], units: 1, useBias: true}));
model.add(tf.layers.dense({units: 1, useBias: true}));
Sequentieel ML-model
const-model = tf.sequentiële(); maakt een sequentieel ML-model aan .
In een sequentieel model stroomt de input direct naar de output. Andere modellen kunnen meerdere ingangen en meerdere uitgangen hebben. Sequential is het gemakkelijkste ML-model. Hiermee kunt u laag voor laag een model bouwen, met gewichten die overeenkomen met de volgende laag.
TensorFlow-lagen
model.add() wordt gebruikt om twee lagen aan het model toe te voegen.
tf.layer.dense is een laagtype dat in de meeste gevallen werkt. Het vermenigvuldigt zijn invoer met een gewichtsmatrix en voegt een getal (bias) toe aan het resultaat.
Vormen en eenheden
inputShape: [1] omdat we 1 input hebben (x = pk).
eenheden: 1 definieert de grootte van de gewichtsmatrix: 1 gewicht voor elke invoer (x-waarde).
Een model samenstellen
Compileer het model met een gespecificeerde optimalisatie- en verliesfunctie :
model.compile({loss: 'meanSquaredError', optimizer:'sgd'});
De compiler is ingesteld om de sgd- optimizer te gebruiken. Het is eenvoudig te gebruiken en behoorlijk effectief.
meanSquaredError is de functie die we willen gebruiken om modelvoorspellingen en ware waarden te vergelijken.