python version 3.5
Для запуска проекта необходимо проделать следующие шаги:
1)Установить python 3.5 в качестве виртуальной среды
2)Установить необходимые зависимости (для этого можно воспользоваться pip из установленной ранее виртуальной среды, или же системным менеджером пакетов python). Зависимости описаны в файле requirements.txt
3)Запустить скрипт rest_api.py командой "python3 rest_api.py" или же из-под виртуальной среды. Если требуется использовать GPU, то команда будет иметь вид "CUDA_VISIBLE_DEVICES=0 python3 rest_api.py"
Данный проект предоставляет интерфейс к обученной модели, использующей в качестве энкодера архитектуру MobileNetV2. Модель обучена на задачу классификации. Взаимодействие с моделью происходит через HTTP запросы. Данный интерфейс реализован в файле rest_api.py. В нем происходит загрузка модели в память и запуск инференса модели на каждый запрос.
Для использования GPU достаточно запустить этот код с переменной среды CUDA_VISIBLE_DEVICES=n, где n - номер GPU в терминах Nvidia CUDA.
При запуске скрипта rest_api.py запускается HTTP сервер, который слушает порт 5000 на ip 127.0.0.1. При этом на GET запросы по URL /api/image_classifier. Возвращается словарь в формате json, где оп ключу 'category' содержится предсказанный моделью класс картинки.
Пример: {'category':'apple'}
Для того чтобы узнать все возможные классы достаточно отправить GET запрос на URL /api/classes. Ответом будет список в формате json, где в алфавитном порятке будут перечислены все возможные классы картинок.
Пример: ['apple','bowtie','ceiling fan']
Для датасета google quickdraw количество классов = 345