pacifikus / latency_prediction

Prediction of CNN inference time

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Latency prediction

Предиктор (регрессор) времени выполнения нейронной сети на основе её описания

Запуск

Для запуска необходимо установить зависимости:

pip install -r requirements.txt

Затем запустить файл start.py

Описание

Генератор

В рамках данной задачи реализован генератор моделей, варьирующий следующие параметры:

  • число блоков
  • конфигурация сверток
    • количество слоев
    • размер ядра
    • padding
    • stride
  • число линейных слоев
  • конфигурация пулинга
    • тип (Avg/Max)
    • размер ядра
    • padding
    • stride
  • функция активации (ReLU/LeakyReLU)

Для каждой сгенерированной модели производится 5 запусков и сохраняется усредненное время инференса модели.

Метапризнаки модели

Полученные модели сохраняются для последующего извлечения признаков:

  • количество сверточных слоев
  • количество линейных слоев
  • количество нелинейных слоев ReLU
  • количество нелинейных слоев LeakyReLU
  • количество слоев пулинга Avg
  • количество слоев пулинга Max
  • размерность линейного слоя на выходе
  • размерность первого линейного слоя на входе
  • Количество сверток с размером ядра 2х2
  • Количество сверток с размером ядра 3х3

Список признаков не является исчерпывающим, пайплайн извлечения признаков может быть дополнен в файле src/feature_engineering.py

Итоговый датасет

Итоговый датасет состоит из наборов метапризнаков для 1000 CNN-моделей - data/processed_df

Модель регрессии

Для предсказания времени выполнения была выбрана модель линейной регрессии Ridge. Метрика качества - Mean Absolute Percentage Error

Значение метрики на кроссвалидации по трем фолдам - [-0.50252446 -0.53983262 -0.67619391] Значение метрики на отложенном наборе данных - 0.5661272519215514

About

Prediction of CNN inference time


Languages

Language:Python 100.0%