# 2nd place solution

Big thanks
[BEST](http://best-kyiv.org/)
for organizing such an outstanding event. It was a great experience for everyone.
Thanks for all my team members (@yaroslav4klymchuk , @vladyelisieiev, @zekamrozek )
Solution
Initial thougths about data
Data was mostly very clean with only small noise in labeling, which resulted in ZERO shake-up in LB
![](assets/996155a1566b6679aa6ad4de.png)
So we did not do any pre-processing
CV policy
We used simple StratifiedKFold for Cross-Validation and got a very good correlation with public score
Modeling
We tried several models:
1. Started from resnet34 to make some basic experiments
2. Switched to SE-ResNeXt50_32x4d and trained it only for 3 folds (because of Disk out of space :) )
3. Also tried mobilenet_v2 but it was to shallow for our task
Augmentation
We used a pack of augmentations from
[segmentation models pytorch](https://github.com/qubvel/segmentation_models.pytorch/blob/master/examples/cars%20segmentation%20%28camvid%29.ipynb)
and , for really, did not tune this stuff.
Optimization
We used simple Adam with bigger LR for classifier and ReduceLROnPlateau as a scheduler. As loss function we used simple CE loss.
Post-processing
We used flips TTA for creating final submissions and blend models from different folds. Also we used
[SWA](https://pytorch.org/blog/stochastic-weight-averaging-in-pytorch/)
for blending checkpoints from different epochs.
Thanks again for all participants and congratulations to winners!!!