Генератор автоматического классификатора изображений

Наконец, инструмент машинного обучения имеет открытый исходный код по адресу serpapi/automatic-images-classifier-generator. Не стесняйтесь использовать, вносить свой вклад и получать удовольствие.

Полностью автоматическая генерация моделей машинного обучения для классификации любых изображений на основе данных SERP

automatic-images-classifier-generator — это инструмент машинного обучения, написанный на Python с использованием SerpApi, Pytorch, FastAPI и Couchbase для автоматизированного создания больших наборов данных, автоматического обучения и тестирования моделей глубокого обучения с возможностью подстройки алгоритмов, хранения структуры и результатов нейронных сетей в одном месте.

Отказ от ответственности: Это программное обеспечение для машинного обучения с открытым исходным кодом не является одним из предложений продуктов, предоставляемых SerpApi. Это программное обеспечение использует один из продуктов SerpApi, API Google Images Scraper для автоматического создания наборов данных. Вы можете зарегистрироваться в SerpApi, чтобы получить бесплатные кредиты. Вы также можете посмотреть страницу цен SerpApi, чтобы получить подробную информацию.

  • Инструменты и возможности машинного обучения, предоставляемые automatic-images-classifier-generator
  • Установка
  • Базовое использование инструментов машинного обучения
  • Добавление изображений SERP на сервер хранения
    • add_to_db
    • множественный_запрос
    • Пример словаря
  • Обучение модели
    • тренировать
    • Пример словаря
  • Тестирование модели
    • тест
    • Словарь примеров
  • Получение информации об обучении и тестировании модели
    • найти_попытку
    • Пример выходного словаря
  • Поддержка различных элементов
    • Слои
    • Оптимизаторы
    • Функции потерь
    • Преобразования
    • Операции с изображениями
  • Ключевые моменты состояния инструмента машинного обучения и его будущая дорожная карта

Инструменты машинного обучения и функции, предоставляемые automatic-images-classifier-generator

  • Инструменты машинного обучения для автоматического создания больших наборов данных изображений на основе API SerpApi’s Google Images Scraper

  • Инструменты машинного обучения для автоматического обучения моделей глубокого обучения с индивидуальными настройками для различных алгоритмов

  • Инструменты машинного обучения для автоматического тестирования моделей машинного обучения

  • Инструменты машинного обучения для настройки узлов в конвейерах ml-моделей, изменения размерности алгоритмов машинного обучения и т.д.

  • Инструменты машинного обучения для ведения учета потерь при обучении, используемых наборов данных, структур нейронных сетей и отчетов о точности.

  • Асинхронное обучение и тестирование моделей машинного обучения

  • Предоставление данных, необходимых для создания визуализации для кросс-сравнения различных моделей машинного обучения с тонкими изменениями в структуре их нейронных сетей.

  • Различные ярлыки для предварительной обработки с целенаправленным майнингом данных SERP


Установка

1) Клонируйте репозиторий

gh repo clone serpapi/automatic-images-classifier-generator
Войдите в полноэкранный режим Выйти из полноэкранного режима

2) Откройте аккаунт SerpApi (бесплатные кредиты доступны при регистрации)

3) Скачайте и установите Couchbase

4) Перейдите на URL Dashboard сервера (например: http://kagermanov:8091) и создайте ведро с именем images.

5) Установите необходимые библиотеки Python

pip install -r requirements.txt
Войдите в полноэкранный режим Выйдите из полноэкранного режима

6) Заполните файл credentials.py учетными данными вашего сервера и учетными данными SerpApi

7) Запустите файл Setup Server

python setup_server.py
Войдите в полноэкранный режим Выйдите из полноэкранного режима

8) Запустите сервер FastAPI

uvicorn main:app --host 0.0.0.0 --port 8000
Войти в полноэкранный режим Выйти из полноэкранного режима

или вы можете просто использовать отладочный сервер, нажав на main.py и запустив отладочный сервер:

9) По желанию запустите тесты:

pytest test_main.py
Войти в полноэкранный режим Выйти из полноэкранного режима

Базовое использование инструментов машинного обучения

1) Перейдите на localhost:8000/docs.
2) Используйте конечную точку add_to_db для вызова обновления базы данных изображений
3) Используйте конечную точку train для обучения модели. Обученная модель будет сохранена в папке models после завершения обучения. Обучение является асинхронным процессом. Следите за терминальными выходами проги.
4) Используйте конечную точку test для тестирования модели.
5) Используйте конечную точку find_attempt для получения данных о процессе обучения и тестирования (потери на каждой эпохе, точность и т.д.).


Добавление изображений SERP на сервер хранения

add_to_db.

Пользователь может выполнять единичный поиск с помощью SerpApi Images Scraper API и автоматически добавлять их на локальный сервер хранения изображений.

multiple_query

Пользователь может выполнять множественный поиск с помощью SerpApi Images Scraper API и автоматически добавлять их на локальный сервер хранения изображений.

Обучение модели

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

train

Советы для критерия

  • Если пользователь укажет только имя критерия (функции потерь), он будет использоваться без параметров.
  • Некоторые строковые входы (особенно если пользователь вызывает внешний класс из Pytorch), должны быть заключены в двойные кавычки, как "'Parameter Value'".
  • Информацию о поддержке функций потерь пользователь может найти далее в документации.

Советы для оптимизатора

  • Если пользователь указывает только имя оптимизатора, он будет использоваться без параметров.
  • Некоторые строковые входы (особенно если пользователь вызывает внешний класс из Pytorch), должны быть заключены в двойные кавычки, как "'Parameter Value'".
  • Информацию о поддержке оптимизаторов пользователь может найти далее в документации.

Советы по операциям с изображениями (функции изображений PIL)

  • Интеграция PIL поддерживает только интеграцию Pytorch Transforms(transform, target_transform keys). Ее следует использовать для второстепенных целей. Многие функции, которые поддерживает PIL, уже обернуты в Pytorch Transforms.
  • Каждый словарь представляет собой отдельную операцию.
  • Некоторые строковые входы (особенно если пользователь вызывает внешний класс из PIL), должны быть заключены в двойные кавычки, как "'Parameter Value'".
  • Информацию о поддержке оптимизаторов пользователь может найти далее в документации.

Советы по работе с трансформациями Pytorch

  • Интеграция Transforms является основной интеграцией, отвечающей за предварительную обработку изображений и меток перед обучением.
  • Каждый ключ в словаре представляет отдельную операцию.
  • Порядок ключей представляет собой порядок последовательных преобразований, которые должны быть применены.
  • Преобразованиям без параметра должно быть присвоено значение True для передачи.
  • Некоторые строковые входные данные (особенно если пользователь вызывает внешний класс из Pytorch) должны быть заключены в двойные кавычки, как "'Parameter Value'".
  • Информацию о поддержке трансформаций пользователь может найти далее в документации.

Советы по использованию имен меток

  • Имена меток должны присутствовать в сервере хранения базы данных изображений, созданной пользователем.
  • Если пользователь предоставил height и width изображений, которые должны быть соскоблены в конечных точках add_to_db или multiple_queries, имя метки должно быть записано с дополнением imagesize:heightxwidth. В противном случае будут получены изображения без определенной классификации, если они есть на сервере.
  • Векторные версии меток могут быть преобразованы с помощью target_transform.

Советы для модели

  • Если указан ключ name, будет вызвано ранее определенное имя класса в models.py, а ключ layers будет проигнорирован.
  • Если ключ layers указан, а ключ name не указан, последует последовательное создание слоев.
  • Каждый словарь в массиве layers представляет обучающий слой.
  • Пользователь может использовать значение auto для входного параметра, чтобы автоматически получить прошлый выходной слой в ограниченной поддержке. Пока это поддерживается только для одних и тех же типов слоев.
  • Пользователь может использовать n_labels для указания количества меток в конечном слое.
  • Информацию о поддержке слоев пользователь может найти далее в документации.

Тестирование модели

test.

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

Получение информации об обучении и тестировании модели

find_attempt

Каждый раз, когда пользователь использует конечную точку train, в базе данных создается объект Attempt. Этот объект также обновляется при каждом использовании конечной точки test. Кроме того, пользователь может автоматически проверять статус тренировки по этому объекту.

  • В начале каждого обучения status объекта будет Training.
  • В конце каждого обучения status объекта будет Trained.
  • В конце каждого тестирования status объекта будет Complete.

Поддержка различных элементов

Ниже перечислены различные функции и алгоритмы, которые поддерживаются. Данные получены из результатов юнит-тестов test_main.py. Функции и алгоритмы, не представленные в списке, могут работать или не работать. Не стесняйтесь пробовать их.


Ключевые моменты для состояния инструмента машинного обучения и его будущей дорожной карты

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

  • В будущем не планируется поддержка других языков программирования, таких как Java, Javascript, C/C++ и т.д. В обозримом будущем единственным поддерживаемым языком будет Python. Возможность поддержки других эффективных баз данных на больших данных, таких как SQL на Hadoop, может стать темой для обсуждения. Также в планах на будущее — возможность добавления нескольких изображений из локального хранилища на сервер хранения.

  • Единственным поддерживаемым фреймворком машинного обучения является Pytorch. В будущем планируется расширить поддержку некоторых других библиотек и программ машинного обучения, таких как Tensorflow, Keras, Scikit-Learn, Apache Spark, Scipy, Apache Mahout, Accord.NET, Weka и др. Уже используемые библиотеки, такие как google-image-results, NumPy и т.д., могут быть использованы в будущем.

  • Для того чтобы программное обеспечение было удобным для пользователя, автоматически выбирается устройство для обучения модели (GPU(CUDA) или CPU). Кроме того, в будущем планируется создать визуализацию данных различных моделей в виде интерактивных графиков, понятных как опытным специалистам по исследованию данных, так и новичкам. Программные библиотеки машинного обучения типа drag-and-drop для создания моделей не предполагается реализовывать.

  • Это программное обеспечение с открытым исходным кодом, предназначенное для локального использования. Эффект или стоимость развертывания на облачных серверах, таких как AWS, Google Cloud и т.д., или интеграция его для приложений машинного обучения с облачными решениями, такими как Amazon Sagemaker, IBM Watson, Microsoft’s Azure Machine Learning и Jupyter Notebook, еще не проверялись. Используйте его по своему усмотрению. В планах на будущее — внедрение некоторых крупномасштабных инструментов млм.

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


Заключение

Я благодарен читателям за внимание, а Brilliant People of SerpApi — за то, что сделали эту запись в блоге возможной. В ближайшие недели мы приступим к созданию базового клиентского инструмента с открытым исходным кодом, который не использует никакую базу данных, но использует automatic-images-classifier-generator в своей основе.

Предыдущие ссылки на записи блога
Как обучить масштабируемый классификатор с помощью FastAPI и SerpApi?
Автоматическое обучение с помощью FastAPI, Pytorch и SerpApi
Создание базы данных изображений с метками N1QL с использованием Couchbase, FastAPI и SerpApi
Использование настраиваемого словаря для автоматического обучения сети с помощью FastApi, PyTorch и SerpApi
Расширение возможностей обучения с помощью данных SERP
Автоматическое обучение в масштабе
ML-модель с автоматическим созданием
Машинное обучение на Python
Мета-обучение
Тестирование машинного обучения
Генератор автоматического классификатора изображений

Оцените статью
devanswers.ru
Добавить комментарий