В предыдущей статье "Распознавание рукописных цифр в браузере", об обучении модели сверточной нейронной сети в браузере распознавать рукописные цифры. Стоит отметить, что этот процесс обучения выполняется в браузере с использованием клиентских ресурсов.
Хотя видение TensorFlow.js заключается в том, что машинное обучение есть везде, даже на мобильных телефонах и встроенных устройствах, пока работает браузер, модели искусственного интеллекта можно обучать, но с учетом ограниченной вычислительной мощности мобильных телефонов и встроенных устройств. (хотя производительность мобильных телефонов продолжает стремительно расти), и более целесообразно, чтобы сложные модели искусственного интеллекта обучались на более мощных серверах. Более того, в настоящее время основное машинное обучение использует язык python.По оценкам, все не согласятся позволить большинству инженеров по машинному обучению перейти с python на js.
Если да, то в чем смысл запуска TensorFlow.js?
Эта проблема на самом деле похожа на TensorFlow Lite.Мы можем тренироваться на стороне сервера и использовать обученную модель для вывода на мобильном телефоне.Обычно для вывода не требуются такие мощные вычислительные мощности.
В этой статье мы рассмотрим, как загрузить предварительно обученную модель машинного обучения в TensorFlow.js для задач классификации изображений.
На официальном сайте TensorFlow посетитеwww.tensorflow.org/js/models/На этом веб-сайте вы можете увидеть, что существуют модели прогнозирования отношения в реальном времени, модели обнаружения целей, модели распознавания речи, модели классификации и т. д.:
Здесь мы выбираем модель MobileNets.MobileNets — это небольшие модели с малой задержкой и низким энергопотреблением для различных сценариев использования с ограниченными ресурсами, которые можно использовать для классификации, обнаружения, встраивания и сегментации, и они функционально аналогичны другим популярным крупномасштабным моделям (таким как Зарождение). MobileNets обеспечивают баланс между задержкой, размером и точностью.
Существует два сценария использования моделей MobileNets:
- Библиотека пакетов JS, которая напрямую вызывает модель MobileNets.
- Напишите собственный код для загрузки модели MobileNets в формате json.
Библиотека пакетов JS, которая напрямую вызывает модель MobileNets.
Библиотека инкапсуляции JS напрямую инкапсулирует модель MobileNets в объект JS. Мы вызываем метод объекта так же, как вызов общего объекта JS для завершения загрузки модели и вывода.
такие как доступGitHub.com/tensorflow/…, мы видим, что объект мобильной сети предоставляет два основных API:
mobilenet.load(
version?: 1,
alpha?: 0.25 | .50 | .75 | 1.0
)
параметр:
- Версия: номер версии MobileNet. 1 означает MobileNet V1, 2 означает использование MobileNet V2. Значение по умолчанию — 1.
- альфа: меньшая альфа снижает точность, но повышает производительность. Значение по умолчанию — 1,0.
model.classify(
img: tf.Tensor3D | ImageData | HTMLImageElement |
HTMLCanvasElement | HTMLVideoElement,
topk?: number
)
параметр:
- img: тензор или элемент изображения для классификации.
- topk: Сколько Вероятностей вернется. Значение по умолчанию — 3.
Использование MobileNets в браузере довольно просто благодаря упакованной библиотеке JS:
<html>
<head>
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@1.0.1"> </script>
<script src="https://cdn.jsdelivr.net/npm/@tensorflow-models/mobilenet@1.0.0"> </script>
</head>
<body>
<img id="img" src="cat.jpg"></img>
<script>
const img = document.getElementById('img');
// Load the model.
mobilenet.load().then(model => {
// Classify the image.
model.classify(img).then(predictions => {
console.log('Predictions: ');
console.log(predictions);
});
});
</script>
</body>
</html>
Уведомление:Код js здесь будет отправлен в хранилище Google для загрузки модели формата JSON MobileNets, и по каким-то необъяснимым причинам к нему нельзя получить доступ в Китае, пожалуйста, перейдите через стену самостоятельно.
Этот пример относительно прост в написании. Он выводит журнал из консоли браузера и отображает результаты. В браузере Chrome вы можете открыть инструменты разработчика для просмотра:
Загрузите модель MobileNets в формате json.
Использовать инкапсулированные JS-объекты действительно удобно, но при использовании собственных обученных моделей инкапсулированные объекты нам никто не предоставляет. В настоящее время нам нужно рассмотреть загрузку модели самостоятельно и вывести ее. В мире JS JSON является очень распространенным форматом обмена данными. TensorFlow.js также использует JSON в качестве формата модели, а также предоставляет инструменты для преобразования.
Изначально я хотел подробно написать, как загрузить модель MobileNets в формате json, но, поскольку JS-модель MobileNets размещена на сервере Google и недоступна в Китае, этот шаг здесь пропущен. В следующей статье я объясню, как преобразовать существующую модель TensorFlow в модель TensorFlow.js и загрузить ее, так что следите за обновлениями!
В приведенном выше примере есть полный код, нажмите, чтобы прочитать исходный текст, и перейдите к примеру кода, который я создал на github. Кроме того, вы также можете получить доступ непосредственно в своем браузере:Я Lego.club/love/index.contract…, испытайте машинное обучение прямо в браузере.
использованная литература:
вы также можете прочитать
- Шаг за шагом, чтобы улучшить скорость распознавания рукописных цифр(1)(2)(3)
- Введение в TensorFlow.js
- Распознавание рукописных цифр в браузере