Ключевой момент этого решения - нарезание на патчи, обучение и инференс работают конфиг файлах. По умолчанию берутся параметры из 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