Ключевой момент этого решения - нарезание на патчи, обучение и инференс работают конфиг файлах. По умолчанию берутся параметры из configs/base.yaml но их можно перезаписывать передавая скриптам -c {path to config file}. Под капотом это все работает на библиотеке configargparse которая является надстройкой над argparse. Это позволяет при желании перезаписывать любые аргументы прямо из командой строки без необходимости менять конфиг.
Допустим конфиг лежит в configs/my_config.yaml, тогда все запускается примерно так:
python3 src/slicer.py -c configs/my_config.yaml- нарежет патчи для тренировки и раздели их на трейн и валидациюpython3 train.py -c configs/my_config.yaml- обучит модельку и сохранит её куда-то в логиpython3 train.py -c logs/{name of your run}/config.yaml- запустит инференс на папке с обученной моделью
Work plan:
- Write data loading script
- Crop Tier 1 data into patches Validate, that masks and results are the same
- Check model training Launch simple model training in notebook
- Check script training (launch short training using script)
- Create Unet baseline, with efficient net encoder.
Change loss functions according to ideas from Kaggle