Пример 1 Модель
Перемешать данные
Всегда перемешивайте данные перед тренировкой.
При обучении модели данные разбиваются на небольшие наборы (партии). Затем каждая партия загружается в модель. Перетасовка важна для предотвращения повторного получения моделью одних и тех же данных. Если одни и те же данные используются дважды, модель не сможет обобщить данные и дать правильный результат. Перетасовка дает лучшее разнообразие данных в каждом пакете.
Пример
tf.util.shuffle(data);
Тензоры TensorFlow
Чтобы использовать TensorFlow, входные данные необходимо преобразовать в тензорные данные:
// 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]);
Нормализация данных
Данные должны быть нормализованы перед использованием в нейронной сети.
Диапазон от 0 до 1 с использованием min-max часто лучше всего подходит для числовых данных:
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));
Модель тензорного потока
Модель машинного обучения — это алгоритм, который производит вывод из ввода.
В этом примере используются 3 строки для определения модели 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}));
Последовательная модель машинного обучения
константная модель = tf.sequential(); создает последовательную модель ML .
В последовательной модели вход течет непосредственно к выходу. Другие модели могут иметь несколько входов и несколько выходов. Sequential — самая простая модель ML. Это позволяет вам строить модель слой за слоем с весами, соответствующими следующему слою.
Слои TensorFlow
model.add() используется для добавления двух слоев к модели.
tf.layer.dense — это тип слоя, который работает в большинстве случаев. Он умножает свои входные данные на матрицу весов и добавляет число (смещение) к результату.
Формы и единицы измерения
inputShape: [1] , потому что у нас есть 1 вход (x = лошадиные силы).
Единицы: 1 определяет размер матрицы весов: 1 вес для каждого входа (значение x).
Компиляция модели
Скомпилируйте модель с заданным оптимизатором и функцией потерь :
model.compile({loss: 'meanSquaredError', optimizer:'sgd'});
Компилятор настроен на использование оптимизатора sgd . Он прост в использовании и достаточно эффективен.
meanSquaredError — это функция, которую мы хотим использовать для сравнения предсказаний модели и истинных значений.