Автоматический генератор классификатора изображений
Наконец, инструмент машинного обучения находится в открытом доступе по адресу serpapi/automatic-images-classifier-generator. Не стесняйтесь использовать, вносить свой вклад и получать удовольствие.
automatic-images-classifier-generator
— это инструмент машинного обучения, написанный на Python с использованием SerpApi, Pytorch, FastAPI и Couchbase для обеспечения автоматического создания больших наборов данных, автоматизированного обучения и тестирования моделей глубокого обучения с возможностью настройки алгоритмов, хранения структуры и результатов нейронных сетей. все в одном месте.
Отказ от ответственности: это программное обеспечение для машинного обучения с открытым исходным кодом не является одним из предложений продуктов, предоставляемых SerpApi. Программное обеспечение использует одно из предложений продукта, SerpApi's Google Images Scraper API, для автоматического создания наборов данных. Вы можете зарегистрироваться в SerpApi, чтобы получить бесплатные кредиты. Вы также можете просмотреть страницу с ценами на SerpApi, чтобы получить подробную информацию.
— -
Инструменты и функции машинного обучения, предоставляемые automatic-images-classifier-generator
- Инструменты машинного обучения для автоматического создания больших наборов данных изображений на основе SerpApi's Google Images Scraper API
- Инструменты машинного обучения для автоматического обучения моделей глубокого обучения с индивидуальными настройками для различных алгоритмов.
- Инструменты машинного обучения для автоматического тестирования моделей машинного обучения
- Инструменты машинного обучения для настройки узлов в конвейерах моделей машинного обучения, изменения размерности алгоритмов машинного обучения и т. д.
- Инструменты машинного обучения для ведения учета потерь при обучении, используемых наборов данных, структур нейронных сетей и отчетов о точности.
- Асинхронное обучение и тестирование моделей машинного обучения
- Доставка данных, необходимых для создания визуализации для перекрестного сравнения различных моделей машинного обучения с тонкими изменениями в их структуре нейронной сети.
- Различные ярлыки для предварительной обработки с целевым интеллектуальным анализом данных SERP.
— -
Монтаж
- Клонировать репозиторий
gh repo clone serpapi/automatic-images-classifier-generator
2. Откройте учетную запись SerpApi (бесплатные кредиты доступны при регистрации)
3. Скачать и установить Couchbase
4. Перейдите по URL-адресу панели мониторинга сервера (например, http://kagermanov:8091
) и создайте корзину с именем images
.
5. Установите необходимые библиотеки Python
pip install -r requirements.txt
6. Заполните credentials.py
файл учетными данными вашего сервера и учетными данными SerpApi.
7. Запустите файл сервера установки
python setup_server.py
8. Запустите сервер FastAPI
uvicorn main:app --host 0.0.0.0 --port 8000
или вы можете просто использовать сервер отладки, нажав main.py
и запустив сервер отладки:
9. При желании запустите тесты:
pytest test_main.py
— -
Базовое использование инструментов машинного обучения
- Направляйтесь к
localhost:8000/docs
- Используйте конечную точку
add_to_db
для вызова обновления базы данных изображений. - Используйте конечную точку
train
для обучения модели. Обученная модель будет сохранена в папкеmodels
после завершения обучения. Обучение представляет собой асинхронный процесс. Следите за выводами терминала для прогресса. - Используйте конечную точку
test
для тестирования модели. - Используйте конечную точку
find_attempt
для получения данных о процессе обучения и тестирования (потери в каждую эпоху, точность и т. д.).
— -
Добавление изображений SERP на сервер хранения
add_to_db
Пользователь может выполнять отдельные поиски с помощью SerpApi Images Scraper API и автоматически добавлять их на локальный сервер хранения изображений.
Площадка визуальной документации
multiple_query
Пользователь может выполнять несколько поисков с помощью SerpApi Images Scraper API и автоматически добавлять их на локальный сервер хранения изображений.
— —
Обучение модели
Пользователь может обучать модель с помощью настраиваемого словаря из конечной точки train
.
train
Советы по критерию
- Клавиша
criterion
отвечает за вызов функции потерь. - Если пользователь указывает только название критерия (функция потерь), оно будет использоваться без параметров.
- Некоторые вводимые строки (особенно если пользователь вызывает внешний класс из Pytorch) должны заключаться в двойные кавычки, например
"'Parameter Value'"
. - Информацию о поддержке функций потерь пользователь может найти далее в документации.
Советы по оптимизатору
- Ключ
optimizer
отвечает за вызов оптимизатора. - Если пользователь указывает только имя оптимизатора, оно будет использоваться без параметров.
- Некоторые вводимые строки (особенно если пользователь вызывает внешний класс из Pytorch) должны заключаться в двойные кавычки, например
"'Parameter Value'"
. - Информацию о поддержке Оптимизаторов пользователь может найти далее в документации.
Советы по работе с изображениями (функции изображения PIL)
- Ключ
image_ops
отвечает за вызов операций PIL на входе. - Интеграция PIL поддерживается только для интеграции Pytorch Transforms (
transform
,target_transform
keys). Его следует использовать для второстепенных целей. Многие функции, поддерживаемые PIL, уже включены в Pytorch Transforms. - Каждый словарь представляет собой отдельную операцию.
- Некоторые входные строки (особенно если пользователь вызывает внешний класс из PIL) должны быть заключены в двойные кавычки, например
"'Parameter Value'"
- Информацию о поддержке Оптимизаторов пользователь может найти далее в документации.
Советы по преобразованиям Pytorch
- Клавиши
transform
иtarget_transform
отвечают за вызов Pytorch Transforms. Первый для ввода, второй для метки соответственно. - Интеграция преобразований — это основная интеграция, отвечающая за предварительную обработку изображений и метки перед обучением.
- Каждый ключ в словаре представляет собой отдельную операцию.
- Порядок ключей представляет порядок последовательных преобразований, которые должны быть применены.
- Преобразования без параметра должны получить значение
True
для передачи. - Некоторые вводимые строки (особенно если пользователь вызывает внешний класс из Pytorch) должны быть заключены в двойные кавычки, например
"'Parameter Value'"
- Информацию о поддержке Transforms пользователь может найти далее в документации.
Советы по названиям ярлыков
label_names
отвечает за объявление имен меток.- Имена меток должны присутствовать на сервере хранения базы данных изображений, созданном пользователем.
- Если пользователь предоставил
height
иwidth
изображений для очистки вadd_to_db
илиmultiple_queries
конечных точках, имя метки должно быть записано с дополнениемimagesize:heightxwidth
. В противном случае будут загружены изображения без определенной классификации, если они присутствуют на сервере. - Векторизованные версии этикеток могут быть преобразованы с помощью
target_transform
Советы для моделей
- Клавиша
model
отвечает за вызов или создание модели. - Если указан ключ
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) выбирается автоматически. Кроме того, в будущем планируется создать визуализацию данных различных моделей в виде интерактивных графиков, которые смогут понять как опытные специалисты по данным, так и новички. Библиотеки программного обеспечения машинного обучения типа перетаскивания для создания моделей не будут реализованы.
- Это программное обеспечение с открытым исходным кодом, предназначенное для локального использования. Эффекты или стоимость развертывания на облачных серверах, таких как AWS, Google Cloud и т. д., или его интеграции для приложений машинного обучения с облачными решениями, такими как Amazon Sagemaker, IBM Watson, Microsoft Azure Machine Learning и Jupyter Notebook, не были учтены. тестил еще. Используйте его по своему усмотрению. В планы на будущее входит внедрение некоторых крупномасштабных инструментов машинного обучения.
- Рабочие процессы для планов на будущее, указанные выше, могут быть реализованы или не реализованы в зависимости от расписания событий, поддержки со стороны других участников и общего использования в автоматизации. Будет выпущено несколько проектов машинного обучения с учебным пособием, объясняющим инструменты машинного обучения.
Заключение
Я благодарен читателям за внимание и Блестящим людям SerpApi за то, что этот пост стал возможен. В ближайшие недели мы приступим к базовому клиентскому инструменту с открытым исходным кодом, который не использует какую-либо базу данных хранилища, а использует automatic-images-classifier-generator
в своей основе.
Первоначально опубликовано на https://serpapi.com 25 августа 2022 г.