Skip to content

Predict Training Set for Segmentation Problems

Notifications You must be signed in to change notification settings

CTLab-ITMO/PTS-SP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

83 Commits
 
 
 
 
 
 
 
 

Repository files navigation

PTS-SP: Прогнозирование размера обучающей выборки с использованием нейронных сетей

Этот репозиторий содержит проект по созданию нейронной сети для предсказания размера обучающей выборки на основе эмбеддингов четырех изображений. Проект включает несколько этапов, представленных в виде Jupyter Notebook файлов, а также предоставляет библиотеку и веб-интерфейс, реализованный с использованием Streamlit, для взаимодействия с моделью.

Содержание

  1. Получение и обработка данных
  2. Аппроксимация зависимости метрики от размера выборки
  3. Обучение модели на основе эмбеддингов InceptionV3
  4. Обучение модели на основе эмбеддингов CLIP
  5. Веб-интерфейс Streamlit
  6. Запуск с использованием Docker
  7. Использование библиотеки

1. Получение и обработка данных

В этом файле выполняется загрузка датасетов сегментации, разделение тренировочных выборок на части и сбор информации о том, как изменяется метрика mAP (mean Average Precision) в зависимости от размера обучающей выборки.

Файл: notebooks/01_Data_Download_and_Preprocessing.ipynb

2. Аппроксимация зависимости метрики от размера выборки

Этот файл включает обработку данных о зависимости метрики mAP от размера тренировочной выборки. Здесь аппроксимируется симметричная сигмоида, и определяются четыре параметра, которые сохраняются для дальнейшего использования.

Файл: notebooks/02_MAP_vs_Training_Size_Approximation.ipynb

3. Обучение модели на основе эмбеддингов InceptionV3

Файл содержит обучение модели нейронной сети, которая принимает на вход эмбеддинги четырех изображений, полученные от модели InceptionV3, и предсказывает четыре параметра аппроксимирующей функции.

Файл: notebooks/03_NN_Training_InceptionV3_Embeddings.ipynb

4. Обучение модели на основе эмбеддингов CLIP

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

Файл: notebooks/04_NN_Training_CLIP_Embeddings.ipynb

5. Веб-интерфейс Streamlit

В директории app находится веб-приложение, реализованное с использованием Streamlit, которое позволяет взаимодействовать с обученными моделями.

Содержимое директории app

  • app.py: основной файл приложения Streamlit;
  • models.py: содержит классы двух моделей для входа от InceptionV3 и от CLIP;
  • Dockerfile: файл для создания Docker-образа приложения;
  • docker-compose.yml: файл для запуска приложения с использованием Docker Compose;
  • requirements.txt: зависимости для веб-приложения;
  • weights: директория с файлами весов моделей (необходимо загрузить из предоставленной ссылки).

Инструкции по загрузке весов моделей

Пользователю необходимо загрузить веса моделей из этой ссылки и поместить их в директорию app/weights.

6. Запуск с использованием Docker

Для запуска приложения с использованием Docker выполните следующие шаги:

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

    git clone https://github.com/yourusername/your-repo-name.git
  2. Перейдите в директорию app:

    cd your-repo-name/app
  3. Убедитесь, что веса моделей загружены и находятся в директории app/weights.

  4. Постройте и запустите контейнеры с помощью Docker Compose:

    docker-compose up --build
  5. Откройте браузер и перейдите по адресу http://localhost:8501, чтобы получить доступ к веб-интерфейсу Streamlit.

7. Использование библиотеки

В директории lib содержатся модули и скрипты, которые можно использовать для работы с данными и моделями.

Основные модули

  • configs/: содержит конфигурационные файлы для обработки данных.
  • models/: содержит реализацию моделей и пользовательских датасетов.
  • data_approx.py: скрипт для аппроксимации зависимости метрики от размера выборки.
  • data_processing.py: скрипт для обработки данных и сбора информации о зависимости метрики от размера выборки.
  • train_model.py: скрипт для обучения моделей.
  • utils.py: вспомогательные функции.

Использование скриптов

  1. Установите зависимости:

    pip install -r lib/requirements.txt
  2. Запустите скрипт для аппроксимации зависимости метрики от размера выборки:

    python lib/data_approx.py
  3. Запустите скрипт для обработки данных и сбора информации о зависимости метрики от размера выборки:

    python lib/data_processing.py
  4. Запустите скрипт для обучения моделей:

    python lib/train_model.py

About

Predict Training Set for Segmentation Problems

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published