Для разработчика 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 будет популярностью.
Модель последовательности — один из самых простых вариантов построения модели. Хотя выбор в конечном итоге зависит от конкретного варианта использования, я пока придерживаюсь этого подхода.
При построении модели вам необходимо решить несколько основных задач:
Следующий код дает хорошее представление об этих задачах, хотя и не дает полной картины. Полный код можно посмотреть на Github.
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
ls -la out/public group1-shard1of1.bin model.json
Эта настройка упрощает доступ к необходимым файлам вашего веб-приложения.
Полный код можно посмотреть на 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, помогают преодолеть разрыв между разработчиками программного обеспечения и машинного обучения. Это делает путь намного проще для тех, кто хочет включить машинное обучение в свои проекты!
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3