Przykład 1 Model


Tasuj dane

Zawsze mieszaj dane przed treningiem.

Gdy model jest trenowany, dane są dzielone na małe zestawy (partie). Każda partia jest następnie podawana do modelu. Tasowanie jest ważne, aby zapobiec ponownemu pobieraniu przez model tych samych danych. Jeśli użyjesz tych samych danych dwukrotnie, model nie będzie w stanie uogólnić danych i dać właściwych wyników. Tasowanie zapewnia większą różnorodność danych w każdej partii.

Przykład

tf.util.shuffle(data);

TensorFlow Tensory

Aby korzystać z TensorFlow, dane wejściowe muszą zostać przekonwertowane na dane tensorowe:

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

Normalizacja danych

Dane powinny zostać znormalizowane przed użyciem w sieci neuronowej.

Zakres od 0 do 1 przy użyciu min-maks jest często najlepszy dla danych liczbowych:

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 przepływu tensorowego

Model uczenia maszynowego to algorytm, który generuje dane wyjściowe z danych wejściowych.

W tym przykładzie użyto 3 linii do zdefiniowania modelu 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}));

Sekwencyjny model ML

const model = tf.sekwencyjny(); tworzy sekwencyjny model ML .

W modelu sekwencyjnym wejście przepływa bezpośrednio do wyjścia. Inne modele mogą mieć wiele wejść i wiele wyjść. Sequential to najłatwiejszy model ML. Pozwala na budowanie modelu warstwa po warstwie, z wagami odpowiadającymi kolejnej warstwie.

Warstwy TensorFlow

model.add() służy do dodawania dwóch warstw do modelu.

tf.layer.dense to typ warstwy, który działa w większości przypadków. Mnoży swoje dane wejściowe przez macierz wagi i dodaje liczbę (bias) do wyniku.

Kształty i jednostki

inputShape: [1] ponieważ mamy 1 wejście (x = moc).

jednostki: 1 określa rozmiar macierzy wag: 1 waga dla każdego wejścia (wartość x).


Kompilacja modelu

Skompiluj model z określonym optymalizatorem i funkcją straty :

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

Kompilator jest skonfigurowany do korzystania z optymalizatora sgd . Jest prosty w obsłudze i dość skuteczny.

meanSquaredError to funkcja, której chcemy używać do porównywania przewidywań modelu i prawdziwych wartości.