Модель определения tensorflowjs(4) машинного обучения на стороне браузера

искусственный интеллект JavaScript
Модель определения tensorflowjs(4) машинного обучения на стороне браузера

Это 19-й день, когда я участвую в Gengwen Challenge, проверьте подробности мероприятия:Обновить вызов

Модель машинного обучения может просто понимать функцию, алгоритм, который принимает ввод, а затем проходит через функцию, чтобы получить вывод. При использовании нейронной сети нейронная сеть является моделью или алгоритмом, потому что вычислять алгоритм должны люди. Нейронную сеть можно понимать как сложную модель, эта модель имеет большое количество параметров, поэтому требует определенной вычислительной мощности, а процесс решения нейронной сети прост и жесток.

Определить модель

Давайте сначала выбросим этот код завершения обмена, а затем объясним его построчно

function createModel() {
  // Create a sequential model
  const model = tf.sequential();

  // Add a single input layer
  model.add(tf.layers.dense({inputShape: [1], units: 1, useBias: true}));

  // Add an output layer
  model.add(tf.layers.dense({units: 1, useBias: true}));

  return model;
}

инициализировать контейнер

const model = tf.sequential();

Это создает экземпляр объекта tf.Model.Sequential немного похож на контейнер.Мы можем сложить структуру слоев нейронной сети в контейнер, и входные данные будут проходить через эти слои и выводить результат. Модели с несколькими входами и выходами также существуют, но во многих случаях наша модель будет выполняться последовательно.

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

После создания контейнера мы можем добавитьlayerВ полученной сети он автоматически соединяется с плотным слоем с одним скрытым звеном.

Предоставлять предопределенные слои в Tensorflow,dense layerПолносвязный слой является относительно простым.Если вы не понимаете его, вы можете просто понять его как линейное уравнение, y = wx + b, но поскольку вводится пакет выборок, w обычно является матрицей (называемой вес), входные данные умножаются на матрицу w, чтобы добавить смещение b, где b также является вектором. Таким образом, мы определили первый слой сети.

Объясните параметр inputShape, потому что данные имеют только одну функцию в качестве входных данных, поэтому inputShape имеет значение [1].

unitsРазмер матрицы весов в этом слое установлен, он установлен на 1, что означает, что входной признак каждых данных равен 1, поэтому есть только 1 вес.

Совет. Полносвязный слой по умолчанию имеет элемент смещения, а значение useBias по умолчанию равно true.

model.add(tf.layers.dense({units: 1}));

По сути, этот слой является выходным слоем нейронной сети.unitsУстановите на 1, чтобы вывести 1 значение.

Подсказка: скрытый слой имеет 1 единицу, на самом деле нет необходимости добавлять конечный выходной слой, а это значит, что скрытый слой можно использовать в качестве выходного слоя. Однако определение выходного слоя позволяет вам позже изменить количество единиц в скрытом слое, но это все.

создавать экземпляр

// Create the model
const model = createModel();
tfvis.show.modelSummary({name: 'Model Summary'}, model)

截屏2021-06-25下午12.36.54.png