mihakremen / amur_tiger_9

0 stars 0 forks source link

Сделать скрипт инференса обученной модели на валидационных данных #3

Open leoromanovich opened 11 months ago

leoromanovich commented 11 months ago

Чтобы те, кто будут работать с результатами ваших экспериментов, не допустили никаких ошибок, когда будут работать с вашей моделью, хорошей практикой является добавление в репозиторий .py скрипта (например, inference.py), в рамках которого описан процесс инференса моделей. В частности:

  1. Как иницализировать вашу модель и подгрузить в неё обученные веса?
  2. Какие трансформации изображения ожидает модель? (чаще всего, это аугментации, которые используются на валидации).
  3. Как работать с выходом вашей модели? Для стороннего пользователя выход модели может быть ничего не значащими для него цифрами. В задачах классификации часто прикладывают словарик {out_id: class_name, out_id: class_name,...}

Т.е. в рамках этого скрипта должна быть описана логика всех этих шагов:

  1. Инициализация модели
  2. Подгрузка весов в неё
  3. Считывание и подготовка изображения
  4. Инференс (прогон изображения через модель)
  5. Получение сырого предсказания из модели
  6. Обработка сырого предсказания до вида 'left side'.

Tips and tricks:

  1. Не забудьте про torch.no_grad()
  2. Не забудьте перевести модель в model.eval() режим
  3. При прогонке изображения через сеть, обязательно проверьте, что при использовании кода, в котором описана валидация, и кода инференса результаты совпадают
  4. (со *) посмотрите на torch.trace и torch.script. Это позволит удобно объединить шаги 1 и 2
Goolissimo commented 11 months ago

Сделал инференс по ViT https://github.com/mihakremen/amur_tiger_9/blob/ViT/ViT/inference.py

Ссылка на пул реквест https://github.com/mihakremen/amur_tiger_9/pull/5

leoromanovich commented 10 months ago

4