«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Соединение машинного обучения с TensorFlow: от Python к JavaScript

Соединение машинного обучения с TensorFlow: от Python к JavaScript

Опубликовано 1 ноября 2024 г.
Просматривать:526

Bridging Machine Learning with TensorFlow: From Python to JavaScript

Воплощение машинного обучения в жизнь с помощью TensorFlow

Для разработчика JavaScript погружение в машинное обучение не так сложно, как может показаться. Хотя технически возможно справиться со всем с помощью пакетов Node.js, экосистема Python ML слишком богата и устоялась, чтобы ее игнорировать. Кроме того, с Python очень приятно работать. Таким образом, имеет смысл использовать Python для выполнения тяжелой работы на бэкэнде. Подготовив модель, вы можете экспортировать ее в удобный для внешнего интерфейса формат и загрузить на клиент для выполнения прогнозов.

Создание модели

В этом посте мы собираемся построить модель, позволяющую предсказать популярность артиста на основе количества его подписчиков в Твиттере.

Первый шаг — получить набор данных. Для этого проекта мы будем использовать файл Artists.csv, который выглядит следующим образом:

twitter_followers,popularity,handle
111024636,94,justinbieber
107920365,91,rihanna
106599902,89,katyperry
95307659,97,taylorswift13
66325495,87,selenagomez
66325135,71,selenagomez
60943147,83,jtimberlake
54815915,82,britneyspears
53569307,85,shakira

Как видите, здесь есть два ключевых значения: twitter_followers и популярность. Это прекрасно подготавливает нас к модели последовательности, где x будет twitter_followers, а y будет популярностью.

Модель последовательности — один из самых простых вариантов построения модели. Хотя выбор в конечном итоге зависит от конкретного варианта использования, я пока придерживаюсь этого подхода.

Создание серверной части

При построении модели вам необходимо решить несколько основных задач:

  • Очистить или нормализовать данные
  • Разделите данные на обучение (80%) и тестирование (20%)
  • Выберите модель вместе с настройками, такими как оптимизатор и функция потерь.
  • Обучение модели (подгонка)
  • Оцените модель
  • Сохранить модель

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

Python: начало работы с TensorFlow

def get_model(x, y):
    x_normalized = layers.Normalization(
        axis=None,
    )
    x_normalized.adapt(np.array(x))

    model = tensorflow.keras.Sequential([x_normalized, layers.Dense(units=1)])

    model.compile(
        optimizer=tensorflow.keras.optimizers.Adam(learning_rate=0.1),
        loss="mean_squared_error",
    )

    model.fit(
        x,
        y,
        epochs=2,
        verbose=0,
        validation_split=0.2,
    )

    return model

def main:
  train_features, test_features, train_labels, test_labels = split_data(dataset)

  model = get_model(
      train_features["twitter_followers"],
      train_labels,
  )

  test_loss = model.evaluate(
      test_features["twitter_followers"], test_labels, verbose=2
  )

  model.export("./saved_model")

Как видите, код Python довольно прост. Есть основная функция, которая обрабатывает разделение данных, получение модели, ее оценку и, наконец, сохранение.

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

Использование модели во внешнем интерфейсе

Теперь, когда мы обучили и сохранили нашу модель, пришло время перенести ее во внешний интерфейс. На этом этапе мы загрузим модель в формате, удобном для Интернета, чтобы мы могли выполнять прогнозы прямо в браузере. Независимо от того, используете ли вы TensorFlow.js или другую библиотеку, интеграция машинного обучения в ваше веб-приложение открывает мир возможностей. Давайте углубимся в то, как это сделать!

TensorFlow предлагает пакет npm под названием tensorflowjs_converter, который помогает конвертировать сохраненные модели в JSON и двоичные файлы.

tensorflowjs_converter --input_format=tf_saved_model model/saved_model out/public
  • tf_saved_model: это формат, используемый для сохранения модели.
  • model/saved_model: это каталог, в котором модель была сохранена при выполнении кода Python.
  • out/public: это выходной каталог, в котором сохраняются файлы, удобные для внешнего интерфейса. Структура папок будет выглядеть так:
ls -la out/public

group1-shard1of1.bin
model.json

Эта настройка упрощает доступ к необходимым файлам вашего веб-приложения.

Javascript: использование TensorFlowJS

Полный код можно посмотреть на Github.

const model = await tensorflow.loadGraphModel("model.json");

const getPopularity = (followers) => {
  const followers = 1_000;
  const normalized = followers;
  const x = tensorflow.tensor(normalized).reshape([-1, 1]);

  const result = model.predict(x);
  const values = result.arraySync();

  const y = values[0][0].toFixed(2) * 100;
  const popularity = y;

  return popularity;
};

Как упоминалось ранее, эта модель направлена ​​на «предсказание популярности» на основе количества подписчиков в Твиттере. Хотя это может показаться простым примером, он эффективно демонстрирует, как создать модель на серверной части и использовать ее на внешней стороне.

Взгляните, как getPopularity немного обрабатывает входные данные, но ключевой строкой является model.predict(x), которая использует модель для прогнозирования значения (y) на основе входных данных x.

Перейдите на демонстрационную страницу и опробуйте несколько дескрипторов Twitter. Это интересный способ увидеть, как модель предсказывает популярность на основе количества подписчиков.

Заключение

TensorFlow — это потрясающая библиотека, предоставляющая инструменты как для внутренней, так и для внешней разработки. Любой разработчик JavaScript может погрузиться в создание модели с использованием Python или аналогичного языка, а затем легко импортировать эту модель во внешний интерфейс для выполнения прогнозов.

Хотя машинное обучение — это обширная область, требующая много знаний, такие инструменты, как TensorFlow, помогают преодолеть разрыв между разработчиками программного обеспечения и машинного обучения. Это делает путь намного проще для тех, кто хочет включить машинное обучение в свои проекты!

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/garciadiazjaime/bridging-machine-learning-with-tensorflow-from-python-to-javascript-25hp?1 Если есть какие-либо нарушения, пожалуйста, свяжитесь с [email protected] удалить его
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3