Beispiel 1 Modell


Daten mischen

Daten vor dem Training immer mischen.

Beim Trainieren eines Modells werden die Daten in kleine Mengen (Batches) aufgeteilt. Jede Charge wird dann dem Modell zugeführt. Das Mischen ist wichtig, um zu verhindern, dass das Modell dieselben Daten erneut erhält. Wenn dieselben Daten zweimal verwendet werden, kann das Modell die Daten nicht verallgemeinern und die richtige Ausgabe liefern. Das Mischen ergibt eine bessere Datenvielfalt in jedem Stapel.

Beispiel

tf.util.shuffle(data);

TensorFlow-Tensoren

Um TensorFlow zu verwenden, müssen Eingabedaten in Tensordaten konvertiert werden:

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

Datennormalisierung

Daten sollten normalisiert werden, bevor sie in einem neuronalen Netzwerk verwendet werden.

Ein Bereich von 0 - 1 mit Min-Max ist oft am besten für numerische Daten:

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-Modell

Ein maschinelles Lernmodell ist ein Algorithmus, der aus Eingaben eine Ausgabe erzeugt.

Dieses Beispiel verwendet 3 Zeilen, um ein ML-Modell zu definieren :

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

Sequentielles ML-Modell

konstantes Modell = tf.sequential (); erstellt ein sequentielles ML-Modell .

In einem sequentiellen Modell fließt der Input direkt zum Output. Andere Modelle können mehrere Eingänge und mehrere Ausgänge haben. Sequential ist das einfachste ML-Modell. Es ermöglicht Ihnen, ein Modell Schicht für Schicht aufzubauen, mit Gewichten, die der nächsten Schicht entsprechen.

TensorFlow-Schichten

model.add() wird verwendet, um dem Modell zwei Schichten hinzuzufügen.

tf.layer.dense ist ein Ebenentyp, der in den meisten Fällen funktioniert. Es multipliziert seine Eingaben mit einer Gewichtsmatrix und fügt dem Ergebnis eine Zahl (Bias) hinzu.

Formen und Einheiten

inputShape: [1] weil wir 1 Eingang haben (x = PS).

Einheiten: 1 definiert die Größe der Gewichtsmatrix: 1 Gewicht für jede Eingabe (x-Wert).


Kompilieren eines Modells

Kompilieren Sie das Modell mit einem angegebenen Optimierer und einer Verlustfunktion :

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

Der Compiler ist so eingestellt, dass er den sgd- Optimierer verwendet. Es ist einfach zu bedienen und sehr effektiv.

meanSquaredError ist die Funktion, die wir verwenden möchten, um Modellvorhersagen und wahre Werte zu vergleichen.