Этот репозиторий содержит проект по созданию нейронной сети для предсказания размера обучающей выборки на основе эмбеддингов четырех изображений. Проект включает несколько этапов, представленных в виде Jupyter Notebook файлов, а также предоставляет библиотеку и веб-интерфейс, реализованный с использованием Streamlit, для взаимодействия с моделью.
- Получение и обработка данных
- Аппроксимация зависимости метрики от размера выборки
- Обучение модели на основе эмбеддингов InceptionV3
- Обучение модели на основе эмбеддингов CLIP
- Веб-интерфейс Streamlit
- Запуск с использованием Docker
- Использование библиотеки
В этом файле выполняется загрузка датасетов сегментации, разделение тренировочных выборок на части и сбор информации о том, как изменяется метрика mAP (mean Average Precision) в зависимости от размера обучающей выборки.
Файл: notebooks/01_Data_Download_and_Preprocessing.ipynb
Этот файл включает обработку данных о зависимости метрики mAP от размера тренировочной выборки. Здесь аппроксимируется симметричная сигмоида, и определяются четыре параметра, которые сохраняются для дальнейшего использования.
Файл: notebooks/02_MAP_vs_Training_Size_Approximation.ipynb
Файл содержит обучение модели нейронной сети, которая принимает на вход эмбеддинги четырех изображений, полученные от модели InceptionV3, и предсказывает четыре параметра аппроксимирующей функции.
Файл: notebooks/03_NN_Training_InceptionV3_Embeddings.ipynb
В этом файле проводится обучение модели нейронной сети, которая принимает на вход эмбеддинги четырех изображений, полученные от модели CLIP, и предсказывает четыре параметра аппроксимирующей функции.
Файл: notebooks/04_NN_Training_CLIP_Embeddings.ipynb
В директории app
находится веб-приложение, реализованное с использованием Streamlit, которое позволяет взаимодействовать с обученными моделями.
app.py
: основной файл приложения Streamlit;models.py
: содержит классы двух моделей для входа от InceptionV3 и от CLIP;Dockerfile
: файл для создания Docker-образа приложения;docker-compose.yml
: файл для запуска приложения с использованием Docker Compose;requirements.txt
: зависимости для веб-приложения;weights
: директория с файлами весов моделей (необходимо загрузить из предоставленной ссылки).
Пользователю необходимо загрузить веса моделей из этой ссылки и поместить их в директорию app/weights
.
Для запуска приложения с использованием Docker выполните следующие шаги:
-
Клонируйте репозиторий:
git clone https://github.com/yourusername/your-repo-name.git
-
Перейдите в директорию
app
:cd your-repo-name/app
-
Убедитесь, что веса моделей загружены и находятся в директории
app/weights
. -
Постройте и запустите контейнеры с помощью Docker Compose:
docker-compose up --build
-
Откройте браузер и перейдите по адресу
http://localhost:8501
, чтобы получить доступ к веб-интерфейсу Streamlit.
В директории lib
содержатся модули и скрипты, которые можно использовать для работы с данными и моделями.
configs/
: содержит конфигурационные файлы для обработки данных.models/
: содержит реализацию моделей и пользовательских датасетов.data_approx.py
: скрипт для аппроксимации зависимости метрики от размера выборки.data_processing.py
: скрипт для обработки данных и сбора информации о зависимости метрики от размера выборки.train_model.py
: скрипт для обучения моделей.utils.py
: вспомогательные функции.
-
Установите зависимости:
pip install -r lib/requirements.txt
-
Запустите скрипт для аппроксимации зависимости метрики от размера выборки:
python lib/data_approx.py
-
Запустите скрипт для обработки данных и сбора информации о зависимости метрики от размера выборки:
python lib/data_processing.py
-
Запустите скрипт для обучения моделей:
python lib/train_model.py