Exemplo 1 Modelo


Dados aleatórios

Sempre embaralhe os dados antes do treino.

Quando um modelo é treinado, os dados são divididos em pequenos conjuntos (lotes). Cada lote é então alimentado ao modelo. O embaralhamento é importante para evitar que o modelo obtenha os mesmos dados novamente. Se usar os mesmos dados duas vezes, o modelo não poderá generalizar os dados e fornecer a saída correta. O embaralhamento fornece uma variedade melhor de dados em cada lote.

Exemplo

tf.util.shuffle(data);

Tensores de fluxo

Para usar o TensorFlow, os dados de entrada precisam ser convertidos em dados do 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]);

Normalização de dados

Os dados devem ser normalizados antes de serem usados ​​em uma rede neural.

Um intervalo de 0 a 1 usando min-max geralmente é melhor para dados numéricos:

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

Modelo Tensorflow

Um modelo de aprendizado de máquina é um algoritmo que produz saída a partir da entrada.

Este exemplo usa 3 linhas para definir um modelo de 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}));

Modelo de ML sequencial

const model = tf.sequential(); cria um modelo de ML sequencial .

Em um modelo sequencial, a entrada flui diretamente para a saída. Outros modelos podem ter várias entradas e várias saídas. Sequencial é o modelo de ML mais fácil. Ele permite que você construa um modelo camada por camada, com pesos que correspondem à próxima camada.

Camadas do TensorFlow

model.add() é usado para adicionar duas camadas ao modelo.

tf.layer.dense é um tipo de camada que funciona na maioria dos casos. Ele multiplica suas entradas por uma matriz de peso e adiciona um número (viés) ao resultado.

Formas e Unidades

inputShape: [1] porque temos 1 entrada (x = cavalo-vapor).

unidades: 1 define o tamanho da matriz de pesos: 1 peso para cada entrada (valor x).


Compilando um modelo

Compile o modelo com um otimizador e função de perda especificados :

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

O compilador está configurado para usar o otimizador sgd . É simples de usar e bastante eficaz.

meanSquaredError é a função que queremos usar para comparar as previsões do modelo e os valores verdadeiros.