Skip to content

Данный репозиторий является решением к треку NoFloodWithAI: паводки на реке Амур в номинации AIJ Junior.

License

Notifications You must be signed in to change notification settings

AntivistRock/no_Flood_with_AI

Repository files navigation

Решение трека no_flood_with_ai_aij2020 AIJ Junior

Данное решение позволило занять 1-е место в Junior номинации трека

Для грантовой комиссии МФТИ:

  • Ссылка на описание трека
  • В форме на грант я указал свой рабочий api key, можно использовать его. Если по какой-то причине он до вас не дошел, то напишите мне.
  • Обязательно наличие драйверов nvidia cuda в системе.
  • Программа не запустится на Windows, т.к. он требует наследования исключительно от своего базового образа для пробрасывания драйвера cuda в контейнер, а это слишком утяжеляет проект.

Файлы по критериям решения

  • solution_amur.ipynb - ноутбук с пошаговым построением модели, коментариями.
  • model_desc.pdf - файл с подробным описанием модери и ссылками на использованные материалы
  • forecast.py - файл со скриптом для генерации прогноза. Помимо самих предсказаний выводит NSE предсказания отдельно для каждого поста. forecast.py создает и обучает модель с нуля, чтобы исключить вохможность оверфита.

В solution_amur.ipynb используется вывод через Google Карты. Если при запуске возникают проблемы, то вам необходимо зарегестрироваться на Google Cloud Platform, создать проект, создать api key и указать его как параметр apikey в ноутбуке UPD: Сдалав репозиторий публичным, я убрал свой api key, теперь для корректного запуска ноутбука вам нужно указать свой google cloud api key

Пояснения к запуску forecast.py

  • При создании Dockerfile в контейнер сразу записываются все нужные для запуска данные (срипт, датасеты).

  • Для содания корректного контейнера необходимо поместить файл forecast.py, requirements.txt, папку datasets и сам Dockerfile в одну папку.

  • forecast.py ожидает, что папка datasets будет иметь точно такую же иерархию, что была в аналогичной папке, предоставленной организаторами. Файлы в подпапке processed_data должны быть за период с 1985 года по 2020 включительно.

Обратите внимание, что сеть обучается только на данных, полученных до даты, с которой начинается предсказание. Например, если вы хотите получить предсказание на период с 1990-01-01 по 1990-01-11, то сеть обучится только на данных за период с 1985 по 1989 год.

Аргументы для docker run

  • -p ./datasets/ - требуется, чтобы задать путь внутри контейнера. Обязательный аргумент.
  • -l - длина периода, который будет подаваться в сеть для предсказания следующих n дней. Опциональный, по умолчанию равен 80.
  • Строки через пробел в формате YYYY-MM-DD. Обратите внимание, что длина предсказания может быть любой. Вы сами выбираете на сколько дней вперед делать прогноз. Длина считается как разница между двумя датами.

Запуск на Ubuntu 18.04

  1. sudo docker pull nvidia/cuda:11.4.0-base-ubuntu18.04
  2. sudo docker build (путь до папки с докерфайлом) --tag amur_image
  3. sudo docker run --gpus all amur_image -p ./datasets/ 2017-01-01 2017-01-11

About

Данный репозиторий является решением к треку NoFloodWithAI: паводки на реке Амур в номинации AIJ Junior.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published